3

我有一个用 C# 编写的 Windows 窗体应用程序,它有三个选项卡,我希望使用活动选项卡更改接受按钮。就像当我在标签 1 中时,我希望按钮 _1 成为接受按钮,但是当我在标签 3 中时,我希望 button_3 成为我的接受按钮。我无法弄清楚如何做到这一点,也许我在搜索中没有使用正确的术语,但我在网上找不到任何好的资源来告诉我如何做到这一点。

4

3 回答 3

4

最好的猜测是挂钩SelectedIndexChanged选项卡控件上的事件并AcceptButton根据选择的选项卡更改事件。伪代码:

Form_OnLoad(...)
{
    this.tabControl.SelectedIndexChanged += (s,e) => {
        TabControl tab = s as TabControl;
        switch (tab.SelectedIndex){
            case 3:
                this.AcceptButton = this.button_3;
                break;
            case 2:
                this.AcceptButton = this.button_2;
                break;
            case 1:
            default:
                this.AcceptButton = this.button_1;
                break;
        }
    };
}

或者类似的东西。

于 2012-12-26T20:29:09.837 回答
2

AcceptButton_Click通过在事件处理程序中使用以下代码,您可以根据当前选择的选项卡执行不同的操作:

if (tabControl1.SelectedTab == tabPage1)
{
    //Do something
}
else if (tabControl1.SelectedTab == tabPage2)
{
    //Do something different
}

如果您更喜欢使用字符串,每个标签页都有一个唯一的名称:

switch (tabControl1.SelectedTab.Name)
{
    case "Tab1Name":
        //Do something
        break;
    case "Tab2Name":
        //Do something different
        break;
}

如果这回答了您的问题,请将其标记为您问题的答案

于 2012-12-26T21:41:30.153 回答
1

TabControl 有 SelectedIndexChanged 事件。

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (tabControl1.SelectedTab == tabControl1.TabPages["RenewalTab"])
        {
            this.AcceptButton = btnRenewal;
        }
        else if (tabControl1.SelectedTab == tabControl1.TabPages["SellerTab"])
        {
            this.AcceptButton = btnSeller;
        }
    }
于 2017-05-04T11:26:38.113 回答