15

タブコントロールをクリックしたタブページに基づいて、イベントを自動的にトリガーしようとしています。

フォームのデザインモードで、タブをクリックすると、プロパティボックスに[TabsSystem.Windows.Forms.TabControl]と表示されます。ただし、プロパティのタブではなく、実際のページをクリックして、ページの名前(TaskListPage System.Windows.Forms.TabPageなど)に変更する必要があります。

私のタブコントロールはタブと呼ばれ、タブオプションに基づいてメッセージを表示することになっている以下のコードを使用してテストしようとしていました。

 private void Tabs_SelectedIndexChanged(object sender, EventArgs e)

        {
            if (Tabs.SelectedTab == TaskListPage)
            {
                MessageBox.Show("TASK LIST PAGE");
            }
            else if (Tabs.SelectedTab == SchedulePage)
            {
                MessageBox.Show("SCHEDULE PAGE");
            }
        }

上記のコードをテストしても、何も起こりません。

特定のタブがクリックされたときにイベントを機能させるための助けをいただければ幸いです。

ありがとうございました

4

3 に答える 3

22

配線されていないようです。

public Form1() {
  InitializeComponent();    
  Tabs.SelectedIndexChanged += new EventHandler(Tabs_SelectedIndexChanged);
}

この情報を提供できる他のイベントもあります:SelectedおよびSelecting

void Tabs_Selected(object sender, TabControlEventArgs e) {
  if (e.TabPage == TaskListPage) {
    // etc
  }
}
于 2012-03-13T12:52:41.217 に答える
0

この最初の部分は

    public Form1()
    {
// This is near the top of the form 1 code in form1.cs

        InitializeComponent();
        tabControl1.SelectedIndexChanged += new EventHandler(TabControl1_SelectedIndexChanged);
    }

次に、通常のコードの下で、タブページがクリックされた後にどのコントロールにフォーカスを設定するかを指定します。私のワードプロセッサでは、リッチテキストボックスとタブコントロールを使用して、mswordリボンをシミュレートしました。私の場合のリッチテキストコントロールはタブページ上にありません。私のタブページはフォームの上部でおそらく1インチまたは2インチをカバーしているからです。

private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {

        richTextBox1.Focus();
    }

これは私が私のワードプロセッサと呼んでいるものです。それを使いたい人のためにここにあります。ラリーの日記

于 2016-08-01T04:52:51.360 に答える
0
private void tabControl1_Click(object sender, EventArgs e)
        {
            if (tabControl1.SelectedTab.Text =="All")
            {
                MessageBox.Show("All");
            }
            else
                MessageBox.Show("hello world");

        }
    }
Try This It should be work
于 2019-12-16T17:43:40.063 に答える