Csharp/C#教程:DataGridView.Editmode = EditOnEnter。 如何选择要删除的行?分享


DataGridView.Editmode = EditOnEnter。 如何选择要删除的行?

当我使用EditMode = EditOnEnter时,单元格在我选择行时进入editmode。

用户很难选择RowSelector删除行。

你知道任何诡计吗?

我试试这个技巧:

当Cell Click:


Private Sub dgv2_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv2.CellClick If e.ColumnIndex = -1 Then dgv2.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2 dgv2.EndEdit() ElseIf dgv2.EditMode <> DataGridViewEditMode.EditOnEnter Then dgv2.EditMode = DataGridViewEditMode.EditOnEnter dgv2.BeginEdit(False) End If End Sub 

您应该明白,当您进入编辑模式时,您的程序无法真正读取用户的想法和理解,但是当不这样做时。

用户可以按Esc键取消编辑模式,然后可以删除行。 您也可以选择其他DataGridViewEditMode(请参阅https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridvieweditmode.aspx ),例如DataGridViewEditMode.EditOnKeystroke或EditOnKeystrokeOrF2,两者都可以从可用性中获益观点看法。

这确实需要在MouseDown上完成。 在MouseUp上触发Cell Click事件:

 Private Sub ProductsGrid_MouseDown(sender As Object, e As MouseEventArgs) Handles ProductsGrid.MouseDown Dim grid = DirectCast(sender, DataGridView) Dim info = grid.HitTest(eX, eY) If into.Type = DataGridViewHitTestType.RowHeader OrElse info.Type = DataGridViewHitTestType.TopLeftHeader Then grid.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2 grid.EndEdit() ElseIf grid.EditMode <> DataGridViewEditMode.EditOnEnter Then grid.EditMode = DataGridViewEditMode.EditOnEnter End If End Sub 

还有更多需要完成的工作,包括处理Tab键行为。 这种行为(以及上述修改)可能最好在inheritanceDataGridView的用户控件中完成。

您可以将焦点更改为父控件。 这将迫使单元格结束编辑而无需更改模式本身。

例如,如果您选择多个单元格,则此代码段将退出编辑模式。

上述就是C#学习教程:DataGridView.Editmode = EditOnEnter。 如何选择要删除的行?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 protected override void OnSelectionChanged(EventArgs e) { base.OnSelectionChanged(e); if (SelectedCells.Count > 1) { // leave edit mode Parent?.Focus(); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987497.html

(0)
上一篇 2021年12月22日
下一篇 2021年12月22日

精彩推荐