我正在使用C#
我有02个表单,表单O1包含03个按钮,表单2包含带有3个选项卡的TabControl
当我单击表单1上的第一个按钮时,如何使选项卡1成为活动选项卡,当我单击第二个按钮时,第二个选项卡将激活,而最后一个按钮则相同
任何帮助。我没有anu想法。是否可以通过传递参数来做到这一点?
答案 0 :(得分:0)
您需要获取表单的实例,然后才能访问该表单上的控件 - 您需要将控件创建为Public以便以其他形式访问。
编辑:在窗体上公开控件并不总是一个好主意。因此,您可以只在该类中创建属性并从该属性设置所选索引,而不是将控件公开。例如:
public class Form2
{
public int TabSelectedIndex
{
set { tabControl.TabIndex = value; }
}
}
public class Form1
{
private Form2 _form2 = new Form2();
private void Button1_Click(object sender, EventArgs e)
{
_form2.TabSelectedIndex = 1;
}
}
答案 1 :(得分:0)
向Form2添加方法。类似于...... void SetActiveTabIndex(Int32 index) {TabControl1.ActiveTab = ...}
答案 2 :(得分:0)
将表单2上tabcontrol的“Modifiers”属性设置为“Public”然后在Form 1上使用以下代码:
Form2 frm = new Form2 ();
//you will need to call frm.Show() somewhere to display form2
private void Button1_Click(object sender, EventArgs e)
{
Form2.tabControl1.SelectedIndex = 0;
}
private void Button2_Click(object sender, EventArgs e)
{
Form2.tabControl2.SelectedIndex = 1;
}
答案 3 :(得分:0)
在公共静态类中创建一个公共变量,当您单击Form1中的按钮时,只需更改此变量的值以指示已单击某个按钮(例如,您可以设置公共变量的值)单击button1时为0,单击button2时为1 ...等。)
现在在Form2中,读取该变量的值,并根据该值激活合适的Tab。
答案 4 :(得分:0)
在Form1上为每个按钮的点击事件添加处理程序:
foreach (Form f in Application.OpenForms)
{
if (f == Form2)
{
f.SelectTab(0)
}
}
在Form2上添加一个方法:
public void SelectTab(int tabIdx)
{
this.TabControl1.SelectedIndex = tabIdx;
}