作成日: 2017/07/26 最終更新日: 2017/07/26
文書種別
使用方法
詳細
MultiRowでは、セルの編集時には.NET Frameworkのコントロールを継承した編集コントロールを使用します。
たとえば、TextBoxCellの編集では、編集コントロールのTextBoxEditingControlコントロールが表示され、このコントロールでセルの値を編集します。
そのため、編集中のセルのキー入力はGcMultiRowコントロールのイベントではなく、セルの編集コントロールのイベントとして処理する必要があります。
また、編集コントロールのイベントは、編集コントロールが表示されるときに発生するGcMultiRow.EditingControlShowingイベントで定義する必要があります。
以下のコードでは、TextBoxCellの編集コントロールであるTextBoxEditingControlに対応するKeyDownイベントを定義しています。
[Visual Basic]
[C#]
TextBoxEditingControl.KeyDownイベントはTextBox.KeyDownイベントと同じです。
たとえば、TextBoxCellの編集では、編集コントロールのTextBoxEditingControlコントロールが表示され、このコントロールでセルの値を編集します。
そのため、編集中のセルのキー入力はGcMultiRowコントロールのイベントではなく、セルの編集コントロールのイベントとして処理する必要があります。
また、編集コントロールのイベントは、編集コントロールが表示されるときに発生するGcMultiRow.EditingControlShowingイベントで定義する必要があります。
以下のコードでは、TextBoxCellの編集コントロールであるTextBoxEditingControlに対応するKeyDownイベントを定義しています。
[Visual Basic]
Imports GrapeCity.Win.MultiRow Private Sub GcMultiRow1_EditingControlShowing(ByVal sender _ As System.Object, ByVal e As EditingControlShowingEventArgs) _ Handles GcMultiRow1.EditingControlShowing Dim textBox As TextBoxEditingControl = TryCast(e.Control, TextBoxEditingControl) If textBox IsNot Nothing Then RemoveHandler textBox.KeyDown, AddressOf Me.textBoxEditingControl_KeyDown AddHandler textBox.KeyDown, AddressOf Me.textBoxEditingControl_KeyDown End If End Sub Private Sub textBoxEditingControl_KeyDown(ByVal sender As System.Object, _ ByVal e As KeyEventArgs) Console.WriteLine(e.KeyCode) End Sub
[C#]
using GrapeCity.Win.MultiRow;
private void gcMultiRow1_EditingControlShowing(object sender, EditingControlShowingEventArgs e)
{
TextBoxEditingControl textBox = e.Control as TextBoxEditingControl;
if (textBox != null)
{
textBox.KeyDown -= new KeyEventHandler(textBox_KeyDown);
textBox.KeyDown += new KeyEventHandler(textBox_KeyDown);
}
}
private void textBox_KeyDown(object sender, KeyEventArgs e)
{
Console.WriteLine(e.KeyCode);
}
TextBoxEditingControl.KeyDownイベントはTextBox.KeyDownイベントと同じです。
旧文書番号
40474