【发布时间】:2012-04-16 03:22:05
【问题描述】:
我有两种形式,form0 和 form1。
form0 有一个包含三个页面的选项卡控件。 (tagpage1、tabpage2 和 tabpage3)
当form1 关闭时,我希望tabpage2 成为焦点。那么基本上,如何控制另一个表单的 tabcontrol 的 tabpage 的状态呢?
非常感谢任何帮助!
【问题讨论】:
我有两种形式,form0 和 form1。
form0 有一个包含三个页面的选项卡控件。 (tagpage1、tabpage2 和 tabpage3)
当form1 关闭时,我希望tabpage2 成为焦点。那么基本上,如何控制另一个表单的 tabcontrol 的 tabpage 的状态呢?
非常感谢任何帮助!
【问题讨论】:
这就是事件处理程序的设计目的。您需要为表单的 FormClosed 事件编写一个处理程序。类似这样:
private void button1_Click(object sender, EventArgs e) {
var frm = new form1();
frm.FormClosed += new FormClosedEventHandler(frm_FormClosed);
frm.Show();
}
void frm_FormClosed(object sender, FormClosedEventArgs e) {
tabControl1.SelectedTab = tabPage2;
}
或者更简洁:
var frm = new form1();
frm.FormClosed += delegate { tabControl1.SelectedTab = tabPage2; };
frm.Show();
最大的优势是这现在完全是 form0 的一个实现细节,在 form1 类中不需要特殊的代码或 form0 的知识。
【讨论】:
form1 中,我不会在form0 中调用tabControl
在名称空间级别定义静态事件而不是形式 在关闭 Form1 时触发此事件并在 form2 上处理以选择所需选项卡
【讨论】: