2014-11-03 12 views
-1

在.NET Windows窗体中,如果我们需要添加在窗体被显示或窗体被隐藏时执行的代码,我们将代码添加到激活并取消激活事件处理程序而不是GotFocus和LostFocus事件处理程序。为什么?在.NET中Windows窗体为什么要使用激活和停用

在.NET Windows窗体中,如果在调用Hide方法时窗体尚未加载到内存中,Hide方法会执行什么操作?

+0

我相信你的第一个问题的答案是,只有一个控件有焦点,所以你的表单可以'激活',而表单中的文本框实际上有焦点。 – Alan 2014-11-03 18:14:35

回答

1

输入焦点与被激活的表单是不同的概念。您的应用程序中的单个控件可以在任何时候聚焦,因为这决定了键盘输入的发送位置。这意味着即使您的表单确实得到了重点,当表单中的子控件(如文本框)被点击时,它也会丢失。因此,我们在窗体上单独激活/禁用事件以跟踪它何时处于活动窗口。

在窗体上调用Hide()只需将Visible属性设置为false,因此在已经不可见的窗体上调用Hide()将不起作用。

+0

那么如果表单没有加载,当你调用show()时,它会加载表单并显示它。为什么同样的情况,它不会先加载它,然后将其设置为隐形? – kwokkaki 2014-11-03 18:30:17

+0

我想表单需要先加载才能显示,而如果没有显示,则不需要加载它,所以它们不会(我刚测试过这个我自己来确认)。 – Alan 2014-11-04 07:51:28

相关问题