FlexGrid for WPF
Deleteキーでセルの値を削除する
基本操作 > セル > Deleteキーでセルの値を削除する

ユーザーがグリッドにある値を編集できる動作は IsReadOnly プロパティで制御されています。IsReadOnly プロパティはデフォルトでFalseに設定されていますので、カレントセルに DBNull.Value を設定してDeleteキーでセルの値を作成できます。

注意:WinForms の AllowEditing プロパティは WPF の他のほとんどのコントロールとの整合性のために、「IsReadOnly」に名前が変更されています。

次の例では、グリッドはデータソースと連結されていることを前提として、ボタンクリックおよび Deleteキーでセルの値を作成する方法を示します。

【実行例】

クリア後イメージ

コードのコピー
Public Sub New()
    InitializeComponent()
    C1FlexGrid.ItemsSource = Product.GetProducts(50)
    AddHandler C1FlexGrid.KeyDown, AddressOf C1FlexGrid_KeyDown
    AddHandler delBtn.Click, AddressOf delBtn_Click
End Sub
'Deleteキーを押してセルのデータを削除することができます
Private Sub C1FlexGrid_KeyDown(sender As Object, e As KeyEventArgs)
    If e.Key = Key.Delete Then
        DeleteItem()
    End If
End Sub
Private Sub delBtn_Click(sender As Object, e As RoutedEventArgs)
    DeleteItem()
End Sub
Private Sub DeleteItem()
    If C1FlexGrid.SelectedItem IsNot Nothing Then
        C1FlexGrid(C1FlexGrid.Selection.Row, C1FlexGrid.Selection.Column) = System.DBNull.Value
    End If
End Sub
コードのコピー
public DeleteCellValue()
{
    InitializeComponent();
    C1FlexGrid.ItemsSource = Product.GetProducts(50);
    C1FlexGrid.KeyDown += C1FlexGrid_KeyDown;
    delBtn.Click += delBtn_Click;
}        
//Deleteキーを押してセルのデータを削除することができます
private void C1FlexGrid_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Delete)
        DeleteItem();
}

private void delBtn_Click(object sender, RoutedEventArgs e)
{
    DeleteItem();
}

private void DeleteItem()
{
    if (C1FlexGrid.SelectedItem != null)
    {
        C1FlexGrid[C1FlexGrid.Selection.Row, C1FlexGrid.Selection.Column] = System.DBNull.Value;
    }
}