gpt4 book ai didi

.net - WinForms DataGridView - 在单元格中编辑现有文本需要 3 次点击

转载 作者:行者123 更新时间:2023-12-04 14:42:36 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10 年前关闭。




Possible Duplicate:
Direct access to DataGridView combobox in one click?



我确信这种行为是设计使然,但在许多情况下我觉得它不直观。

如果您通过单击与当前所在行不同的单元格中的一个单元格将光标移动到新行,则第一次单击只会将您移动到该行并突出显示您单击的整个单元格。第二次点击选择所有文本,就像您想删除或覆盖它一样。第三次单击最终会将光标定位在您单击的文本中的位置。

有没有办法改变行为,以便用户可以移动到不同的行并在第一次或至少第二次点击后内联编辑现有文本?

编辑 1:
所以下面给出的答案效果很好。如果启用了 EditOnEnter 模式,则 Microsoft 讨论站点中无法选择行的问题似乎已通过 Visual Studio 2008 解决。

我剩下的唯一问题是,当用户使用 Tab 移动到下一条记录或者如果他们在下一个单元格中单击时,会立即选择整个文本,这可能会导致意外覆盖。有没有简单的解决方法?

编辑 2:
您为 edit1 提供的解决方案确实有效,但有一个问题。第一次单击不同的单元格后,光标将始终位于文本的末尾。我不认为这真的是一个如此糟糕的问题,所以我不会担心尝试修复它。

最佳答案

将 DataGridView 控件的 EditMode 属性更改为“EditOnEnter”。

Direct access to DataGridView combobox in one click?

http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/cab3c9eb-4c86-475e-8cbd-dee6b235765a/

[对于您的编辑部分答案示例]

http://www.pcreview.co.uk/forums/datagridviewtextboxeditingcontrol-dont-want-text-initially-sele-t2526222.html

this.myDataGrid.CellEnter += new
DataGridViewCellEventHandler(myDataGrid_CellEnter);

void myDataGrid_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if ((this.myDataGrid.Columns[e.ColumnIndex] is
DataGridViewTextBoxColumn) ||
(this.myDataGrid.Columns[e.ColumnIndex] is
DataGridViewComboBoxColumn))
{
this.myDataGrid.BeginEdit(false);
}
}

关于.net - WinForms DataGridView - 在单元格中编辑现有文本需要 3 次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com