編集されたソリューション:
カーソルがセル内 (編集モード) にあるときにボタンを押すと、イベントのTreeList
送信者ではなく、 . したがって、 のイベントも処理する必要があります。KeyDown
RepositoryItemButtonEdit
RepositoryItemButtonEdit
コードが重複しないようにonKeyDown
、送信者を確認するハンドラ ' ' を 1 つ作成しました。
treeList1.KeyDown += onKeyDown;
riButtonEdit.KeyDown += onKeyDown;
とKeyDown
の両方のイベントを処理し、セルの値を に設定する方法を示すコード例を次に示します。treeList
repositoryButtonEdit
null
private void onKeyDown(object sender, KeyEventArgs e)
{
// Test if the button pressed is the delete button
if (e.KeyCode != Keys.Delete)
return;
// Test if the focused column is colValue
if (treeList1.FocusedColumn != colValue)
return;
// Set the cell value to null
treeList1.FocusedNode.SetValue(colValue, null);
// If it's the ButtonEdit who send the event, make it's EditValue null
var btnEdit = sender as ButtonEdit;
if (btnEdit != null)
{
btnEdit.EditValue = null;
}
}