【问题标题】:Change accept button with tabs更改带有选项卡的接受按钮
【发布时间】:2017-05-04 19:26:38
【问题描述】:

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

【问题讨论】:

标签: c# button tabs


【解决方案1】:

最好的猜测是挂钩选项卡控件上的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;
        }
    };
}

或者类似的东西。

【讨论】:

  • 好主意 +1。这可以让您更改AcceptButton 的文本,但我真的认为这对于更改功能并不实用。 (另外,我认为您的意思是挂钩 SelectedIndexChanged 事件,每次单击控件时都会触发 Selected)。
  • 我的印象是他们想要更改按钮绑定而不仅仅是文本。而且您可能是正确的,您希望在索引更改时绑定,而不是在仅单击选项卡时绑定
【解决方案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;
}

如果这回答了您的问题,请mark it as the answer to your question

【讨论】:

    【解决方案3】:

    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;
            }
        }
    

    【讨论】:

    • 一些解释会显着提高你的回答质量
    猜你喜欢
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2015-05-24
    • 1970-01-01
    • 2011-11-02
    • 2017-01-06
    相关资源
    最近更新 更多