我不明白为什么可能是这样,我认为Activated应该在表单显示时提出。实际上,我的表单将TopLevel设置为false,并将其添加到另一个表单。当主窗体显示时,它也是可见的,我可以与其控件进行交互,但我测试并看到“激活”未被提升。是否有任何情况下表单的激活事件不会引发?
public MainForm(){
InitializeComponent();
Form child = new Form();
child.Activated += (s,e) => {
MessageBox.Show("Activated!");
};
child.Size = new Size(200,100);
child.TopLevel = false;
child.Show();
child.Parent = this;
}
运行MainForm后,子窗体出现在主窗体中,并且没有任何MessageBox显示消息“Activated!”。
需要额外的工作来提高它吗?
那么这将是一个替代品,但这是否意味着激活不能提高? – 2013-04-25 14:48:00
这意味着“激活”并不意味着你的想法;你想要的是“显示”。 – Servy 2013-04-25 14:55:15
激活是一个事件,我想知道它会在什么情况下被提出,你不觉得这很奇怪吗?或者至少向我解释激活不能在这种情况下提出,发布一些链接...,显示是另一个解决方法,但不适用于(不能取代激活)的所有情况下,如果不是这样,为什么激活确实存在? ?? – 2013-04-25 15:05:34