WindowsForms:关注焦点

时间:2015-07-18 16:17:32

标签: c# winforms textbox listbox focus

问题: 我有一个自定义TextBox,显示ListBox以向用户提供输入内容的建议。 现在的问题是,当用户离开ListBox时有一个例外,TextBox需要隐藏。如果用户点击ListBox,则ListBox仍然可见。

有没有办法使用Leave或LostFocus事件来确定下一个控件是否为ListBox

不是问题,但也很有趣:在焦点发生变化之前,你能在控件中发现哪个控件处于活动状态吗?

2 个答案:

答案 0 :(得分:1)

TextBox.LostFocus事件处理程序中,您可以在关闭可见性之前检查属性ListBox.ContainsFocus

ContainsFocus属性文档:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.containsfocus(v=vs.110).aspx

答案 1 :(得分:1)

ListBox个活动中,检查当前ListBox是否是您的TextBox。如果为真,那么ListBox在您离开private void textBox1_Leave(object sender, EventArgs e) { if (this.ActiveControl != listBox1) listBox1.Visible = false; } 之后就会聚焦并且它仍然可见,但如果它是假的,则隐藏message

--input table
it = {}
--put input in table
for _input in string.gmatch((message), '%w+') do
    it[#it+1] = { input=_input }
end
相关问题