2

在aWindows Form中,使用tabControl1时,如何在tabPage1中单击按钮时从一个选项卡切换到另一个选项卡(即tabPage1到tabPage2)。尝试了很多

tabPage2.Show(); 
tabControl1.SelectedIndex = tabPage2; 

等等,但不给任何o / p ...请帮助

4

4 回答 4

6

您应该尝试使用TabControl.SelectedTab 属性

获取或设置当前选中的标签页。

上面的话题也有如下备注:

标签页必须在 TabPages 集合中才能使其成为当前标签页。

在您的情况下,这应该有效:

//somewhere in your code, you have to add first the TabPage to the TabControl
tabControl1.TabPages.Add(tabPage2);

tabControl1.SelectedTab = tabPage2;

[更新]

如果这也不起作用,则很可能您没有将该button1_Click方法关联为button1Click事件处理程序。更有可能的是,您只是在button1表单的另一个控件容器或表单本身中创建了控件,然后将其剪切并粘贴tabPage1控件中。

这将删除事件处理程序。

只需将该button1_Click方法重新分配为button1Click事件处理程序并确保您使用该SelectedTab属性(或SelectedIndex如该问题的其他一些答案和评论中所示)。

这是对类似问题的引用:剪切和粘贴控件丢失事件处理程序

于 2013-01-30T13:22:18.083 回答
1

试试这个代码:

tabControl1.SelectedPage = tabpage1;
于 2013-08-27T11:05:43.790 回答
0

this.tabControl1.SelectedTab = this.tabControl1.TabPages[1];.

于 2013-01-30T13:24:29.627 回答
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());
    }
}
于 2013-01-30T13:24:07.857 回答