2

では、Windows FormtabControl1 を使用しているときに、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それでも機能しない場合は、メソッドをイベントハンドラーとして関連付けていない可能性がありますbutton1。また、フォームの別のコントロールコンテナまたはフォーム自体にコントロールを作成し、それを切り取ってコントロールに貼り付けClickた可能性がさらに高くなります。button1tabPage1

これにより、イベントハンドラーが削除されます。

button1_Clickメソッドをbutton1Clickイベントハンドラーとして再割り当てし、SelectedTabプロパティを使用していることを確認してください(またはSelectedIndex、この質問の他の回答やコメントに示されているように)。

同様の問題への参照は次のとおりです。切り取りと貼り付けは、失われたイベントハンドラーを制御します

于 2013-01-30T13:22:18.083 に答える
1

このコードを試してください:

tabControl1.SelectedPage = tabpage1;
于 2013-08-27T11:05:43.790 に答える
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 に答える
0

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

于 2013-01-30T13:24:29.627 に答える