单击ListView时TextBox接收焦点

时间:2018-02-21 13:38:26

标签: c# winforms mouseevent

我正在努力使用列表视图为我的应用程序创建自定义自动完成样式控件。在一种形式中,自定义控件按预期工作,但在另一种形式中,当单击ListView而不是选择ListViewItem时,将选择表单中的第一个TextBox。

不是用一堵代码堵塞问题,而是AutoCompleteListView的代码。

这是表单的图像。由于数据保护,项目被编辑: Form image

此外,here是一个显示表单行为的.gif文件。我在前面提到的gif中所做的是试图点击ListView中的第一个项目,但是,当我这样做时,将更改重点放在表单中的第一个文本框中。单击任意3个文本框中的任何项目时,会出现相同的行为。

我试图使用RuntimeFlow跟踪事件以观察事件是否触发,但它没有提供任何实际发生的清晰度。如果有人能指出我正确的方向,那将非常感激。

1 个答案:

答案 0 :(得分:0)

我的第一个猜测是在ItemClick中,您将可见性设置为false,这意味着表单中的其他内容需要焦点,即文本框。因此,在ItemClick中将textbox.focus()添加到所需的文本框中。鉴于您无法访问此类中的父窗体,我建议您在AutoCompleteListView中创建一个OnClose事件并在父窗体中订阅它,将焦点设置为某个位置。