数値型セルと日付型セルの上下キーを無効にするには?
対象製品
El Tabelle for .NET 3.0J
詳細
数値型セルと日付型セルでは、セル編集時の上下キーに値の増減が割り当てられます。通常の上下キーの操作は [Ctrl] + 上下キーで行います。
これらのセル型で上下キーを無効にするには、Form の KeyPreview プロパティを true に設定し、次のコードを実行します。
WorkBook/Sheet の場合、次のようにコーディングします。
[Visual Basic]
[C#]
MultiRowSheet の場合、次のようにコーディングします。
[Visual Basic]
[C#]
これらのセル型で上下キーを無効にするには、Form の KeyPreview プロパティを true に設定し、次のコードを実行します。
WorkBook/Sheet の場合、次のようにコーディングします。
[Visual Basic]
Private Sub Form1_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'Sheet1がアクティブの場合
If Me.ActiveControl Is Sheet1 Then
'Sheet1が編集中の場合
If Sheet1.EditState = True Then
'編集中のセルが数値型または日付型の場合
If Sheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.NumberEditor) Or _
Sheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.DateEditor) _
Then
'上下キーが押された場合
If e.KeyCode = Keys.Down _
Or e.KeyCode = e.KeyCode.Up Then
e.Handled = True
End If
End If
End If
End If
End Sub
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'Sheet1がアクティブの場合
If Me.ActiveControl Is Sheet1 Then
'Sheet1が編集中の場合
If Sheet1.EditState = True Then
'編集中のセルが数値型または日付型の場合
If Sheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.NumberEditor) Or _
Sheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.DateEditor) _
Then
'上下キーが押された場合
If e.KeyCode = Keys.Down _
Or e.KeyCode = e.KeyCode.Up Then
e.Handled = True
End If
End If
End If
End If
End Sub
[C#]
private void Form1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
//Sheet1がアクティブの場合
if (this.ActiveControl == sheet1)
{
//Sheet1が編集中の場合
if (sheet1.EditState == true)
{
//編集中のセルが数値型または日付型の場合
if (sheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.NumberEditor) |
sheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.DateEditor))
{
//上下キーが押された場合
if (e.KeyCode == Keys.Down | e.KeyCode == Keys.Up)
{
e.Handled = true;
}
}
}
}
}
System.Windows.Forms.KeyEventArgs e)
{
//Sheet1がアクティブの場合
if (this.ActiveControl == sheet1)
{
//Sheet1が編集中の場合
if (sheet1.EditState == true)
{
//編集中のセルが数値型または日付型の場合
if (sheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.NumberEditor) |
sheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.DateEditor))
{
//上下キーが押された場合
if (e.KeyCode == Keys.Down | e.KeyCode == Keys.Up)
{
e.Handled = true;
}
}
}
}
}
MultiRowSheet の場合、次のようにコーディングします。
[Visual Basic]
Private Sub Form1_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'MultiRowSheet1がアクティブの場合
If Me.ActiveControl Is Sheet1 Then
'MultiRowSheet1が編集中の場合
If MultiRowSheet1.EditState = True Then
'編集中のセルが数値型または日付型の場合
If MultiRowSheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.NumberEditor) Or _
MultiRowSheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.DateEditor) _
Then
'上下キーが押された場合
If e.KeyCode = Keys.Down _
Or e.KeyCode = e.KeyCode.Up Then
e.Handled = True
End If
End If
End If
End If
End Sub
ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
'MultiRowSheet1がアクティブの場合
If Me.ActiveControl Is Sheet1 Then
'MultiRowSheet1が編集中の場合
If MultiRowSheet1.EditState = True Then
'編集中のセルが数値型または日付型の場合
If MultiRowSheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.NumberEditor) Or _
MultiRowSheet1.ActiveCell.Editor.GetType Is _
GetType(GrapeCity.Win.ElTabelle.Editors.DateEditor) _
Then
'上下キーが押された場合
If e.KeyCode = Keys.Down _
Or e.KeyCode = e.KeyCode.Up Then
e.Handled = True
End If
End If
End If
End If
End Sub
[C#]
private void Form1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
//Sheet1がアクティブの場合
if (this.ActiveControl == multiRowSheet1)
{
//Sheet1が編集中の場合
if (multiRowSheet1.EditState == true)
{
//編集中のセルが数値型または日付型の場合
if (multiRowSheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.NumberEditor) |
multiRowSheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.DateEditor))
{
//上下キーが押された場合
if (e.KeyCode == Keys.Down | e.KeyCode == Keys.Up)
{
e.Handled = true;
}
}
}
}
}
System.Windows.Forms.KeyEventArgs e)
{
//Sheet1がアクティブの場合
if (this.ActiveControl == multiRowSheet1)
{
//Sheet1が編集中の場合
if (multiRowSheet1.EditState == true)
{
//編集中のセルが数値型または日付型の場合
if (multiRowSheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.NumberEditor) |
multiRowSheet1.ActiveCell.Editor.GetType() ==
typeof(GrapeCity.Win.ElTabelle.Editors.DateEditor))
{
//上下キーが押された場合
if (e.KeyCode == Keys.Down | e.KeyCode == Keys.Up)
{
e.Handled = true;
}
}
}
}
}
キーワード
HowTo
この文書は、以前は次のFAQ IDで公開されていました : 6964