作成日: 2014/11/05 最終更新日: 2014/11/05
文書種別
使用方法
詳細
セルの編集用コントロールを取得するには、C1DataGridのBeganEditイベントのイベント引数であるEditingElementで取得することができます。
以下のサンプルではセルの編集用コントロールのKeyDownイベントを利用して、セル編集中のEnterキーでカレントセルを右隣のセルに移動します。
◎サンプルコード(Visual Basic)
◎サンプルコード(C#)
以下のサンプルではセルの編集用コントロールのKeyDownイベントを利用して、セル編集中のEnterキーでカレントセルを右隣のセルに移動します。
◎サンプルコード(Visual Basic)
Public Sub New()
InitializeComponent()
Me.c1DataGrid1.ItemsSource = New StockCollection()
Me.c1DataGrid1.SelectionMode = C1.WPF.DataGrid.DataGridSelectionMode.MultiRange
AddHandler c1DataGrid1.BeganEdit, AddressOf c1DataGrid1_BeganEdit
AddHandler c1DataGrid1.CommittingEdit, AddressOf c1DataGrid1_CommittingEdit
End Sub
Private Sub c1DataGrid1_CommittingEdit(sender As Object, e As C1.WPF.DataGrid.DataGridEndingEditEventArgs)
RemoveHandler e.EditingElement.KeyDown, AddressOf EditingElement_KeyDown
End Sub
Private Sub c1DataGrid1_BeganEdit(sender As Object, e As C1.WPF.DataGrid.DataGridBeganEditEventArgs)
AddHandler e.EditingElement.KeyDown, AddressOf EditingElement_KeyDown
End Sub
Private Sub EditingElement_KeyDown(sender As Object, e As System.Windows.Input.KeyEventArgs)
If e.Key = System.Windows.Input.Key.Enter Then
If c1DataGrid1.CurrentCell.Column.Index + 1 < c1DataGrid1.Columns.Count Then
c1DataGrid1.Selection.Clear()
c1DataGrid1.Selection.Add(c1DataGrid1(c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1))
c1DataGrid1.CurrentCell = c1DataGrid1(c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1)
End If
End If
End Sub
InitializeComponent()
Me.c1DataGrid1.ItemsSource = New StockCollection()
Me.c1DataGrid1.SelectionMode = C1.WPF.DataGrid.DataGridSelectionMode.MultiRange
AddHandler c1DataGrid1.BeganEdit, AddressOf c1DataGrid1_BeganEdit
AddHandler c1DataGrid1.CommittingEdit, AddressOf c1DataGrid1_CommittingEdit
End Sub
Private Sub c1DataGrid1_CommittingEdit(sender As Object, e As C1.WPF.DataGrid.DataGridEndingEditEventArgs)
RemoveHandler e.EditingElement.KeyDown, AddressOf EditingElement_KeyDown
End Sub
Private Sub c1DataGrid1_BeganEdit(sender As Object, e As C1.WPF.DataGrid.DataGridBeganEditEventArgs)
AddHandler e.EditingElement.KeyDown, AddressOf EditingElement_KeyDown
End Sub
Private Sub EditingElement_KeyDown(sender As Object, e As System.Windows.Input.KeyEventArgs)
If e.Key = System.Windows.Input.Key.Enter Then
If c1DataGrid1.CurrentCell.Column.Index + 1 < c1DataGrid1.Columns.Count Then
c1DataGrid1.Selection.Clear()
c1DataGrid1.Selection.Add(c1DataGrid1(c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1))
c1DataGrid1.CurrentCell = c1DataGrid1(c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1)
End If
End If
End Sub
◎サンプルコード(C#)
public KB81043()
{
InitializeComponent();
// テストデータ設定
this.c1DataGrid1.ItemsSource = new StockCollection();
this.c1DataGrid1.SelectionMode = C1.WPF.DataGrid.DataGridSelectionMode.MultiRange;
c1DataGrid1.BeganEdit += c1DataGrid1_BeganEdit;
c1DataGrid1.CommittingEdit += c1DataGrid1_CommittingEdit;
}
void c1DataGrid1_CommittingEdit(object sender, C1.WPF.DataGrid.DataGridEndingEditEventArgs e)
{
e.EditingElement.KeyDown -= EditingElement_KeyDown;
}
void c1DataGrid1_BeganEdit(object sender, C1.WPF.DataGrid.DataGridBeganEditEventArgs e)
{
e.EditingElement.KeyDown += EditingElement_KeyDown;
}
void EditingElement_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter)
{
if (c1DataGrid1.CurrentCell.Column.Index + 1 < c1DataGrid1.Columns.Count)
{
c1DataGrid1.Selection.Clear();
c1DataGrid1.Selection.Add(c1DataGrid1[c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1]);
c1DataGrid1.CurrentCell = c1DataGrid1[c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1];
}
}
}
{
InitializeComponent();
// テストデータ設定
this.c1DataGrid1.ItemsSource = new StockCollection();
this.c1DataGrid1.SelectionMode = C1.WPF.DataGrid.DataGridSelectionMode.MultiRange;
c1DataGrid1.BeganEdit += c1DataGrid1_BeganEdit;
c1DataGrid1.CommittingEdit += c1DataGrid1_CommittingEdit;
}
void c1DataGrid1_CommittingEdit(object sender, C1.WPF.DataGrid.DataGridEndingEditEventArgs e)
{
e.EditingElement.KeyDown -= EditingElement_KeyDown;
}
void c1DataGrid1_BeganEdit(object sender, C1.WPF.DataGrid.DataGridBeganEditEventArgs e)
{
e.EditingElement.KeyDown += EditingElement_KeyDown;
}
void EditingElement_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key == System.Windows.Input.Key.Enter)
{
if (c1DataGrid1.CurrentCell.Column.Index + 1 < c1DataGrid1.Columns.Count)
{
c1DataGrid1.Selection.Clear();
c1DataGrid1.Selection.Add(c1DataGrid1[c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1]);
c1DataGrid1.CurrentCell = c1DataGrid1[c1DataGrid1.CurrentRow.Index, c1DataGrid1.CurrentColumn.Index + 1];
}
}
}
関連情報
旧文書番号
81043