【发布时间】:2011-09-04 21:36:17
【问题描述】:
在 WinForms 控件中,如何在单击 ListView、TreeView 等控件项时禁用标签编辑,而不禁用编辑功能(LabelEdit 属性)?
我想这样做是因为以下行为令人讨厌且有问题:“选择其中一个控件的项目,将焦点更改为其他应用程序,然后单击该项目”,然后标签编辑会自动开始。也许我只想恢复焦点和选择。
当您在同一应用程序的控件之间更改焦点时会发生类似的情况,但在这种情况下,我会在进入控件时停止清理项目选择的这种行为。
对于第一个描述的无用的问题。
【问题讨论】:
-
为什么要禁用它而不禁用它?关闭
LabelEdit属性正是您正在寻找的解决方案。您仍然可以通过代码编辑标签,用户只是无法通过单击它来完成。 -
XD @Cody 你在写完问题并转到视觉之后,我想到了解决方案,我默认禁用labeledit,然后如果我按F2我启用它然后调用BeginEdit( ) 方法。在 AfterLabelEdit 事件处理程序中,我再次禁用它。
-
这有副作用,当您执行此操作时会重新创建本机 Windows 控件。您在这个问题中留下了一些非常重要的细节,让 SO 用户几乎没有机会帮助您。何不干脆放弃标签编辑,反正对用户来说就是个皮塔饼。只需在 TextBox 中显示所选节点的文本。
标签: .net winforms listview controls treeview