作成日: 2017/03/01 最終更新日: 2017/03/01
文書種別
使用方法
詳細
SPREADではデフォルトの入力マップ定義により、これらのキーに対して以下の動作が割り当てられています。
【Enter】セルの編集開始/終了
【F2】編集モードが有効になっている場合は、アクティブ セル内の値を消去
【F3】編集モードが有効になっている場合は、日付時刻型セルに現在の日時を入力
【F4】日付型セルで編集モードが有効になっている場合は、日付を選択するためのポップアップカレンダをスプレッドシートに表示
Keyイベントにてこれらのキー押下を検知し、独自の処理を実装したい場合には入力マップの定義を無効とする必要があります。
◎サンプルコード(VB)
◎サンプルコード(C#)
【Enter】セルの編集開始/終了
【F2】編集モードが有効になっている場合は、アクティブ セル内の値を消去
【F3】編集モードが有効になっている場合は、日付時刻型セルに現在の日時を入力
【F4】日付型セルで編集モードが有効になっている場合は、日付を選択するためのポップアップカレンダをスプレッドシートに表示
Keyイベントにてこれらのキー押下を検知し、独自の処理を実装したい場合には入力マップの定義を無効とする必要があります。
※.シート上にフォーカスが存在する場合にはSPREADコントロールのKeyイベントをご利用ください。フォームのKeyイベントでは取得出来ない場合があります。
※.WindowsOSでは【F10】キーを【Alt】キーと同機能(メニューバーをアクティブにする)として使っています。このためSPREAD側ではこの動作を抑制することが出来ず、【F10】キー押下によるKeyイベントは発生しない場合がありますので、この点についてご注意ください。
※.WindowsOSでは【F10】キーを【Alt】キーと同機能(メニューバーをアクティブにする)として使っています。このためSPREAD側ではこの動作を抑制することが出来ず、【F10】キー押下によるKeyイベントは発生しない場合がありますので、この点についてご注意ください。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 常時入力モードを設定
FpSpread1.EditModePermanent = True
Dim im As New FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Enter]キー押下による動作を無効
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
' [F3]キー押下による動作を無効
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
End Sub
Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff
' 編集モードOFFの時、KeyDownイベントの関連付けを解除
Dim KeyDownHandler As KeyEventHandler = AddressOf FpSpread1_KeyDown
RemoveHandler FpSpread1.EditingControl.KeyDown, KeyDownHandler
End Sub
Private Sub FpSpread1_EditModeOn(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOn
' 編集モードONの時、KeyDownイベントを関連付け
Dim KeyDownHandler As KeyEventHandler = AddressOf FpSpread1_KeyDown
AddHandler FpSpread1.EditingControl.KeyDown, KeyDownHandler
End Sub
Private Sub FpSpread1_KeyDown(sender As Object, e As KeyEventArgs) Handles FpSpread1.KeyDown
Console.WriteLine("KeyDown: KeyCode={0}", e.KeyCode)
End Sub
' 常時入力モードを設定
FpSpread1.EditModePermanent = True
Dim im As New FarPoint.Win.Spread.InputMap
im = FpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused)
' [Enter]キー押下による動作を無効
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
' [F3]キー押下による動作を無効
im.Put(New FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None)
End Sub
Private Sub FpSpread1_EditModeOff(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOff
' 編集モードOFFの時、KeyDownイベントの関連付けを解除
Dim KeyDownHandler As KeyEventHandler = AddressOf FpSpread1_KeyDown
RemoveHandler FpSpread1.EditingControl.KeyDown, KeyDownHandler
End Sub
Private Sub FpSpread1_EditModeOn(sender As Object, e As EventArgs) Handles FpSpread1.EditModeOn
' 編集モードONの時、KeyDownイベントを関連付け
Dim KeyDownHandler As KeyEventHandler = AddressOf FpSpread1_KeyDown
AddHandler FpSpread1.EditingControl.KeyDown, KeyDownHandler
End Sub
Private Sub FpSpread1_KeyDown(sender As Object, e As KeyEventArgs) Handles FpSpread1.KeyDown
Console.WriteLine("KeyDown: KeyCode={0}", e.KeyCode)
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
// 常時入力モードを設定
fpSpread1.EditModePermanent = true;
FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();
im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
// [Enter]キー押下による動作を無効
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
// [F3]キー押下による動作を無効
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
}
void fpSpread1_EditModeOff(object sender, EventArgs e)
{
// 編集モードOFFの時、KeyDownイベントの関連付けを解除
KeyEventHandler KeyDownHandler = fpSpread1_KeyDown;
fpSpread1.EditingControl.KeyDown -= KeyDownHandler;
}
void fpSpread1_EditModeOn(object sender, EventArgs e)
{
// 編集モードONの時、KeyDownイベントを関連付け
KeyEventHandler KeyDownHandler = fpSpread1_KeyDown;
fpSpread1.EditingControl.KeyDown += KeyDownHandler;
}
void fpSpread1_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine("KeyDown: KeyCode={0}", e.KeyCode);
}
{
// 常時入力モードを設定
fpSpread1.EditModePermanent = true;
FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();
im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
// [Enter]キー押下による動作を無効
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
// [F3]キー押下による動作を無効
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.F3, Keys.None), FarPoint.Win.Spread.SpreadActions.None);
}
void fpSpread1_EditModeOff(object sender, EventArgs e)
{
// 編集モードOFFの時、KeyDownイベントの関連付けを解除
KeyEventHandler KeyDownHandler = fpSpread1_KeyDown;
fpSpread1.EditingControl.KeyDown -= KeyDownHandler;
}
void fpSpread1_EditModeOn(object sender, EventArgs e)
{
// 編集モードONの時、KeyDownイベントを関連付け
KeyEventHandler KeyDownHandler = fpSpread1_KeyDown;
fpSpread1.EditingControl.KeyDown += KeyDownHandler;
}
void fpSpread1_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine("KeyDown: KeyCode={0}", e.KeyCode);
}
関連情報
旧文書番号
40078