在Windows Form
中,使用tabControl1时,如何在按钮上单击tabPage1,从一个标签切换到另一个标签(即tabPage1到tabPage2)。
tabPage2.Show();
tabControl1.SelectedIndex = tabPage2;
等但不给任何o / p ...请帮助
答案 0 :(得分:5)
您应该尝试使用TabControl.SelectedTab Property:
获取或设置当前选定的标签页。
上述主题也有如下注释:
标签页必须位于TabPages集合中才能使其成为当前标签页 标签页。
在您的情况下,这应该有效:
//somewhere in your code, you have to add first the TabPage to the TabControl
tabControl1.TabPages.Add(tabPage2);
tabControl1.SelectedTab = tabPage2;
<强> [UPDATE] 强>
如果这也不起作用,您可能还没有将button1_Click
方法与button1
的{{1}}事件处理程序相关联。而且您更有可能只是在表单的另一个控件容器或表单本身中创建了Click
控件,然后剪切并粘贴它到button1
控件。 / p>
这将删除事件处理程序。
只需将tabPage1
方法重新分配为button1_Click
的{{1}}事件处理程序,并确保使用button1
属性(或Click
,如某些这个问题的其他答案和评论)。
以下是对类似问题的引用:cut and paste controls lost event handlers。
答案 1 :(得分:0)
请注意TabControl.SelectedIndex属性是整数。 (您也可以使用SelectedTab属性,如其他答案所示)
因此,您将其设置为要选择的选项卡:
tabControl1.SelectedIndex = 1;
这是一个基于msdn代码的完整示例,(注意它没有经过测试,因为我不在Windows上,并且没有在这里设置.NET):
using System.Drawing;
using System.Windows.Forms;
public class Form1 : Form
{
private TabControl tabControl1;
private TabPage tabPage1;
private TabPage tabPage2;
private Button btn;
private void MyTabs()
{
this.tabControl1 = new TabControl();
this.tabPage1 = new TabPage();
this.tabPage2 = new TabPage();
this.btn = new Button();
this.tabControl1.Controls.AddRange(new Control[] {
this.tabPage1,
this.tabPage2});
this.tabControl1.Padding = new Point(15, 10);
this.tabControl1.Location = new Point(35, 25);
this.tabControl1.Size = new Size(220, 220);
this.btn.Location = new Point(10, 250);
// Selects THE FIRST tab initially..
this.tabControl1.SelectedIndex = 0;
this.tabPage1.Text = "myTabPage1";
this.tabPage1.TabIndex = 0;
this.tabPage2.Text = "myTabPage2";
this.tabPage2.TabIndex = 1;
this.btn.Text = "Select myTabPage2";
this.btn.Click += new EventHandler(btn_click);
this.Size = new Size(400, 400);
this.Controls.AddRange(new Control[] {
this.tabControl1});
this.Controls.Add(btn);
}
public void btn_click(object sender, EventArgs e)
{
tabControl1.SelectedIndex = 1;
}
public Form1()
{
MyTabs();
}
static void Main()
{
Application.Run(new Form1());
}
}
答案 2 :(得分:0)
this.tabControl1.SelectedTab = this.tabControl1.TabPages[1];
。
答案 3 :(得分:0)
试试这段代码:
tabControl1.SelectedPage = tabpage1;