既定のキー操作を無効にした場合に、Key イベントが検出されません
対象製品
El Tabelle for .NET 3.0J
詳細
El Tabelle に割り当てられた既定のキー操作を無効にした場合、KeyDown イベントなどの Key 関連イベントを検出することができなくなります。この場合、ShortCutNotify イベントで検出します。
ShortCutNotify イベントのプロシージャは ShortCut オブジェクトに対して関連付けられるため、Visual Studio .NET のフォーム デザイナでは生成されません。イベントを受け取るプロシージャを手動で作成し、関連付ける必要があります。
次のコードは F4 キーによるドロップダウン操作を無効にし、Sheet1_ShortCutNotifyF4 イベントで F4 キーの入力を検出します。
・WorkBook/Sheet の場合、次のようにコーディングします。
[Visual Basic]
[C#]
MultiRowSheet の場合、次のようにコーディングします。
[Visual Basic]
[C#]
ShortCutNotify イベントのプロシージャは ShortCut オブジェクトに対して関連付けられるため、Visual Studio .NET のフォーム デザイナでは生成されません。イベントを受け取るプロシージャを手動で作成し、関連付ける必要があります。
次のコードは F4 キーによるドロップダウン操作を無効にし、Sheet1_ShortCutNotifyF4 イベントで F4 キーの入力を検出します。
・WorkBook/Sheet の場合、次のようにコーディングします。
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim aryKeyActions(0) As GrapeCity.Win.ElTabelle.KeyAction
'何も操作を割り当てない
aryKeyActions(0) = -1
Dim objShortcutF4 As New GrapeCity.Win.ElTabelle.ShortCut( _
Keys.F4, aryKeyActions)
'イベントにプロシージャを関連付ける
AddHandler objShortcutF4.ShortCutNotify, _
AddressOf Me.Sheet1_ShortCutNotifyF4
'F4キーのショートカットを追加する
Sheet1.ShortCuts.Add(objShortcutF4)
End Sub
Private Sub Sheet1_ShortCutNotifyF4(ByVal sender As Object, _
ByVal e As GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs)
Debug.WriteLine(e.Position.Expression & " で F4 キーが入力されました")
End Sub
ByVal e As System.EventArgs) Handles MyBase.Load
Dim aryKeyActions(0) As GrapeCity.Win.ElTabelle.KeyAction
'何も操作を割り当てない
aryKeyActions(0) = -1
Dim objShortcutF4 As New GrapeCity.Win.ElTabelle.ShortCut( _
Keys.F4, aryKeyActions)
'イベントにプロシージャを関連付ける
AddHandler objShortcutF4.ShortCutNotify, _
AddressOf Me.Sheet1_ShortCutNotifyF4
'F4キーのショートカットを追加する
Sheet1.ShortCuts.Add(objShortcutF4)
End Sub
Private Sub Sheet1_ShortCutNotifyF4(ByVal sender As Object, _
ByVal e As GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs)
Debug.WriteLine(e.Position.Expression & " で F4 キーが入力されました")
End Sub
[C#]
private void Form1_Load(object sender, System.EventArgs e)
{
GrapeCity.Win.ElTabelle.KeyAction[] aryKeyActions =
new GrapeCity.Win.ElTabelle.KeyAction[1];
//何も操作を割り当てない
aryKeyActions[0] = (GrapeCity.Win.ElTabelle.KeyAction)(-1);
GrapeCity.Win.ElTabelle.ShortCut objShortcutF4 =
new GrapeCity.Win.ElTabelle.ShortCut(Keys.F4, aryKeyActions);
//イベントにプロシージャを関連付ける
objShortcutF4.ShortCutNotify +=
new GrapeCity.Win.ElTabelle.ShortCutNotifyHandler(
this.sheet1_ShortCutNotifyF4);
//ショートカットを追加する
sheet1.ShortCuts.Add(objShortcutF4);
}
private void sheet1_ShortCutNotifyF4(object sender,
GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.Position.Expression +
" で F4 キーが入力されました");
}
{
GrapeCity.Win.ElTabelle.KeyAction[] aryKeyActions =
new GrapeCity.Win.ElTabelle.KeyAction[1];
//何も操作を割り当てない
aryKeyActions[0] = (GrapeCity.Win.ElTabelle.KeyAction)(-1);
GrapeCity.Win.ElTabelle.ShortCut objShortcutF4 =
new GrapeCity.Win.ElTabelle.ShortCut(Keys.F4, aryKeyActions);
//イベントにプロシージャを関連付ける
objShortcutF4.ShortCutNotify +=
new GrapeCity.Win.ElTabelle.ShortCutNotifyHandler(
this.sheet1_ShortCutNotifyF4);
//ショートカットを追加する
sheet1.ShortCuts.Add(objShortcutF4);
}
private void sheet1_ShortCutNotifyF4(object sender,
GrapeCity.Win.ElTabelle.ShortCutNotifyEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.Position.Expression +
" で F4 キーが入力されました");
}
MultiRowSheet の場合、次のようにコーディングします。
[Visual Basic]
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Dim aryMKeyActions(0) As GrapeCity.Win.ElTabelle.MKeyAction
'何も操作を割り当てない
aryMKeyActions(0) = -1
Dim objMShortcutF4 As New GrapeCity.Win.ElTabelle.MShortcut( _
Keys.F4, aryMKeyActions)
'イベントにプロシージャを関連付ける
AddHandler objMShortcutF4.ShortcutNotify, _
AddressOf Me.MultiRowSheet1_ShortcutNotifyF4
'F4キーのショートカットを追加する
MultiRowSheet1.Shortcuts.Add(objShortcutF4)
End Sub
Private Sub MultiRowSheet1_ShortcutNotifyF4(ByVal sender As Object, _
ByVal e As GrapeCity.Win.ElTabelle.MShortcutNotifyEventArgs)
Debug.WriteLine(e.MRow & " マルチ行目で F4 キーが入力されました")
End Sub
ByVal e As System.EventArgs) Handles MyBase.Load
Dim aryMKeyActions(0) As GrapeCity.Win.ElTabelle.MKeyAction
'何も操作を割り当てない
aryMKeyActions(0) = -1
Dim objMShortcutF4 As New GrapeCity.Win.ElTabelle.MShortcut( _
Keys.F4, aryMKeyActions)
'イベントにプロシージャを関連付ける
AddHandler objMShortcutF4.ShortcutNotify, _
AddressOf Me.MultiRowSheet1_ShortcutNotifyF4
'F4キーのショートカットを追加する
MultiRowSheet1.Shortcuts.Add(objShortcutF4)
End Sub
Private Sub MultiRowSheet1_ShortcutNotifyF4(ByVal sender As Object, _
ByVal e As GrapeCity.Win.ElTabelle.MShortcutNotifyEventArgs)
Debug.WriteLine(e.MRow & " マルチ行目で F4 キーが入力されました")
End Sub
[C#]
private void Form1_Load(object sender, System.EventArgs e)
{
GrapeCity.Win.ElTabelle.MKeyAction[] aryMKeyActions =
new GrapeCity.Win.ElTabelle.MKeyAction[1];
//何も操作を割り当てない
aryMKeyActions[0] = (GrapeCity.Win.ElTabelle.MKeyAction)(-1);
GrapeCity.Win.ElTabelle.MShortcut objMShortcutF4 =
new GrapeCity.Win.ElTabelle.MShortcut(Keys.F4, aryMKeyActions);
//イベントにプロシージャを関連付ける
objMShortcutF4.ShortcutNotify +=
new GrapeCity.Win.ElTabelle.MShortcutNotifyEventHandler(
this.multiRowSheet1_ShortcutNotifyF4);
//ショートカットを追加する
multiRowSheet1.Shortcuts.Add(objMShortcutF4);
}
private void multiRowSheet1_ShortcutNotifyF4(object sender,
GrapeCity.Win.ElTabelle.MShortcutNotifyEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.MRow +
" マルチ行目で F4 キーが入力されました");
}
{
GrapeCity.Win.ElTabelle.MKeyAction[] aryMKeyActions =
new GrapeCity.Win.ElTabelle.MKeyAction[1];
//何も操作を割り当てない
aryMKeyActions[0] = (GrapeCity.Win.ElTabelle.MKeyAction)(-1);
GrapeCity.Win.ElTabelle.MShortcut objMShortcutF4 =
new GrapeCity.Win.ElTabelle.MShortcut(Keys.F4, aryMKeyActions);
//イベントにプロシージャを関連付ける
objMShortcutF4.ShortcutNotify +=
new GrapeCity.Win.ElTabelle.MShortcutNotifyEventHandler(
this.multiRowSheet1_ShortcutNotifyF4);
//ショートカットを追加する
multiRowSheet1.Shortcuts.Add(objMShortcutF4);
}
private void multiRowSheet1_ShortcutNotifyF4(object sender,
GrapeCity.Win.ElTabelle.MShortcutNotifyEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.MRow +
" マルチ行目で F4 キーが入力されました");
}
キーワード
HowTo
この文書は、以前は次のFAQ IDで公開されていました : 8055