我有一个用C#编写的Windows窗体应用程序,它有三个选项卡,我希望使用活动选项卡更改接受按钮。就像当我在标签1中时,我希望按钮_1成为接受按钮,但当我在标签3中时,我希望button_3成为我的接受按钮。我无法弄清楚如何做到这一点,也许我没有在我的搜索中使用正确的术语,但我找不到任何好的资源在线告诉我如何做到这一点。
答案 0 :(得分: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;
}
};
}
或类似的东西。
答案 1 :(得分: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。
答案 2 :(得分: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;
}
}