Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在鼠标单击操作中禁用标签编辑_.net_Winforms_Listview_Controls_Treeview - Fatal编程技术网

.net 在鼠标单击操作中禁用标签编辑

.net 在鼠标单击操作中禁用标签编辑,.net,winforms,listview,controls,treeview,.net,Winforms,Listview,Controls,Treeview,在WinForms控件中,我如何在单击ListView、TreeView等控件项时禁用标签编辑,而不禁用编辑功能(LabeleEdit属性) 我之所以想这样做,是因为以下行为是有问题的:“选择其中一个控件的一个项目,将焦点更改为其他应用程序,在该项目中单击“上一步”,然后标签编辑自动开始。也许我只想恢复焦点和选择 当您在同一应用程序的控件之间更改焦点时,也会发生类似的情况,但在这种情况下,我会在进入控件时停止清理项目选择的行为 对于第一个描述的没有用的问题。您可以通过处理树的BeforeLabe

在WinForms控件中,我如何在单击ListView、TreeView等控件项时禁用标签编辑,而不禁用编辑功能(
LabeleEdit
属性)

我之所以想这样做,是因为以下行为是有问题的:“选择其中一个控件的一个项目,将焦点更改为其他应用程序,在该项目中单击“上一步”,然后标签编辑自动开始。也许我只想恢复焦点和选择

当您在同一应用程序的控件之间更改焦点时,也会发生类似的情况,但在这种情况下,我会在进入控件时停止清理项目选择的行为


对于第一个描述的没有用的问题。

您可以通过处理树的BeforeLabelEdit来实现这一点

    private void treeView1_BeforeLabelEdit(object sender, NodeLabelEditEventArgs e)
    {
//if you want to edit in some special case write your condition here
        e.CancelEdit = true;
    }

为什么要禁用此功能而不禁用它?关闭
LabelEdit
属性正是您要寻找的解决方案。您仍然可以通过代码编辑标签,用户只是无法通过单击它来编辑标签。XD@Cody您刚刚写完问题并转到visual,我想到了解决方案,默认情况下我禁用了labeledit,如果我按F2键,我将启用它,然后调用BeginEdit()方法。在AfterLabelEdit事件处理程序中,我再次禁用它。这样做会产生副作用,当您这样做时,会重新创建本机Windows控件。您在这个问题上遗漏了一些非常重要的细节,因此用户几乎没有机会帮助您。你为什么不放弃标签编辑呢,不管怎么说,这对用户来说都是一个pita。只需在文本框中显示所选节点的文本。