我正在使用C#
我有02窗体,窗体O1包含03按钮和窗体2包含TabControl有3个标签 如何使标签1是当我点击时的活动标签窗体上的第一个按钮1和第二个选项卡将激活,当我点击第二个按钮和最后一个按钮相同 任何帮助。我没有anu的想法。有可能做到这一点通过传递参数?传递值和事件
传递值和事件
回答
您需要获取表单的实例,然后才能访问该表单上的控件 - 您需要将该控件创建为公共以便以另一种形式访问。
编辑:暴露窗体上的控件并不总是一个好主意。因此,不要将控件设为公开,只需在该类中创建一个属性并从该属性中设置选定的索引即可。例如:
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;
}
}
我们如何在那里创建控件公有属性你的意思是? – user1148561 2012-01-13 21:51:51
请检查编辑 – MNIK 2012-01-13 21:59:56
向Form2添加一个方法。东西liek .. void SetActiveTabIndex(Int32 index) {TabControl1.ActiveTab = ...}
该tabcontrol是另一种形式 – user1148561 2012-01-13 21:49:50
编辑。将新方法放在包含选项卡控件的表单中。 – 2012-01-13 21:51:30
设置您的TabControl的“调节器”属性的Form 2“公开”,然后在表格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;
}
我正在使用devExpress TabControl它剂量有这样的特性! – user1148561 2012-01-13 21:57:24
thx我建立了属性SelectedTabPageIndex thx很多 – user1148561 2012-01-13 22:10:55
做一个公共变量在一个公共静态类,当您单击Form1中的按钮时,只需更改此变量的值以指示某个按钮已被单击(例如,可以将公共变量的值设置为0时单击按钮1,1时单击按钮2 .. 。等等)。
现在在Form2中,读取该变量的值,并根据该值激活合适的Tab。
在表单2谁是将捕获变量的事件 – user1148561 2012-01-13 22:05:16
对不起,我认为Form1是打开的,你将点击它中的一个按钮,然后Form2将打开,它没有任何意义打开两个表格并从另一个表格改变! – 2012-01-13 22:19:12
在Form1上添加处理程序的每个按钮的单击事件:
foreach (Form f in Application.OpenForms)
{
if (f == Form2)
{
f.SelectTab(0)
}
}
Form2上添加一个方法:
public void SelectTab(int tabIdx)
{
this.TabControl1.SelectedIndex = tabIdx;
}
我想你应该考虑MDI窗体http://msdn.microsoft.com /en-us/library/7aw8zc76(v=vs.80).aspx – PedroC88 2012-01-13 21:55:23