[MLTR07097]ショートカットによるコントロール間の遷移でCellValidatingイベントが発生しない
対象製品
MultiRow for Windows Forms 5.0J
発生環境
動作保証環境と同じ
詳細
ショートカットキーを使用して他のコントロールにフォーカスを移動すると、GcMultiRow.CellValidating イベントが発生しません。
回避方法
カスタムアクションを定義する方法で GcMultiRow.CellValidating イベントを起こすことが可能です。
[Visual Basic]
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
gcMultiRow1.ShortcutKeyManager.Register(New myTabAction(), Keys.Tab)
gcMultiRow1.ShortcutKeyManager.Register(New myShiftTabAction(), Keys.Tab Or Keys.Shift)
End Sub
Public Class myTabAction
Implements IAction
#Region "IAction メンバ"
Public Function CanExecute(ByVal target As GcMultiRow) As Boolean
Return True
End Function
Public ReadOnly Property DisplayName() As String
Get
Return "myTab"
End Get
End Property
Public Sub Execute(ByVal target As GcMultiRow)
target.FindForm().Validate()
ComponentActions.SelectNextControl.Execute(target)
End Sub
End Class
#End Region
Public Class myShiftTabAction
Implements IAction
#Region "IAction メンバ"
Public Function CanExecute(ByVal target As GcMultiRow) As Boolean
Return True
End Function
Public ReadOnly Property DisplayName() As String
Get
Return "myShiftTabAction"
End Get
End Property
Public Sub Execute(ByVal target As GcMultiRow)
target.FindForm().Validate()
ComponentActions.SelectPreviousControl.Execute(target)
End Sub
End Class
#End Region
[C#]
private void Form1_Load(object sender, EventArgs e)
{
gcMultiRow1.ShortcutKeyManager.Register(new myTabAction(), Keys.Tab);
gcMultiRow1.ShortcutKeyManager.Register(new myShiftTabAction(), Keys.Tab | Keys.Shift);
}
public class myTabAction : IAction
{
#region IAction メンバ
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return "myTab"; }
}
public void Execute(GcMultiRow target)
{
target.FindForm().Validate();
ComponentActions.SelectNextControl.Execute(target);
}
#endregion
}
public class myShiftTabAction : IAction
{
#region IAction メンバ
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return "myShiftTabAction"; }
}
public void Execute(GcMultiRow target)
{
target.FindForm().Validate();
ComponentActions.SelectPreviousControl.Execute(target);
}
#endregion
}
[Visual Basic]
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
gcMultiRow1.ShortcutKeyManager.Register(New myTabAction(), Keys.Tab)
gcMultiRow1.ShortcutKeyManager.Register(New myShiftTabAction(), Keys.Tab Or Keys.Shift)
End Sub
Public Class myTabAction
Implements IAction
#Region "IAction メンバ"
Public Function CanExecute(ByVal target As GcMultiRow) As Boolean
Return True
End Function
Public ReadOnly Property DisplayName() As String
Get
Return "myTab"
End Get
End Property
Public Sub Execute(ByVal target As GcMultiRow)
target.FindForm().Validate()
ComponentActions.SelectNextControl.Execute(target)
End Sub
End Class
#End Region
Public Class myShiftTabAction
Implements IAction
#Region "IAction メンバ"
Public Function CanExecute(ByVal target As GcMultiRow) As Boolean
Return True
End Function
Public ReadOnly Property DisplayName() As String
Get
Return "myShiftTabAction"
End Get
End Property
Public Sub Execute(ByVal target As GcMultiRow)
target.FindForm().Validate()
ComponentActions.SelectPreviousControl.Execute(target)
End Sub
End Class
#End Region
[C#]
private void Form1_Load(object sender, EventArgs e)
{
gcMultiRow1.ShortcutKeyManager.Register(new myTabAction(), Keys.Tab);
gcMultiRow1.ShortcutKeyManager.Register(new myShiftTabAction(), Keys.Tab | Keys.Shift);
}
public class myTabAction : IAction
{
#region IAction メンバ
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return "myTab"; }
}
public void Execute(GcMultiRow target)
{
target.FindForm().Validate();
ComponentActions.SelectNextControl.Execute(target);
}
#endregion
}
public class myShiftTabAction : IAction
{
#region IAction メンバ
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return "myShiftTabAction"; }
}
public void Execute(GcMultiRow target)
{
target.FindForm().Validate();
ComponentActions.SelectPreviousControl.Execute(target);
}
#endregion
}
この文書は、以前は次のFAQ IDで公開されていました : 7770