2011-11-30 52 views
0

我想知道是否可以有不同的标签页共享的固定数量的按钮。但是我不知道如何实现这一点。你们有什么想法吗?标签控制共享相同的按钮Winform

下面是我的gui的截图,这样你们所有人都可以更清楚地了解我的意思。

1

我想要的客户,预订,列表和入住/退房将分享按钮搜索,编辑,删除和刷新。

可能吗?或者我应该为每个标签页创建差异按钮?

是正确的,如果我做的:

private void buttonSearch_Click(object sender, EventArgs e) 
{ 
    if(tabpage.SelectedIndex == 1){ then perform action..} 
    if(tabpage.SelectedIndex == 2) {then perform action...} 
} 
+0

谢谢您的所有建议!我会真的把它放在我的脑海:)) –

回答

1

您可以将按钮放在用户控件中,向用户控件添加一些事件(例如,SearchClicked,EditClicked等)。将用户控件放在tabcontrol之外。

然后,当你改变标签(TabIndexChanged),从以前的标签移除事件处理程序,并添加事件处理程序的新标签:

private void tabControl_TabIndexChanged(object sender, EventArgs e) 
    { 
     UserControl1.EditClicked -= OldEventHandler; 
     UserControl1.EditClicked += NewEventHandler; 
    } 
0

是的,你可以在运行时更改按钮的.Parent财产 - 但它不会是最好只移动的按钮的标签控制?

0

我觉得你应该为每个标签页面都可以创建不同的按钮一个在不同的实体上运行。如果只有一组按钮,那么你将不得不首先检查哪个标签页被选中,然后执行操作。所以你会有一个很大的方法来做很多事情。

此外,还会有额外的UI代码,您需要编写这些代码才能在选择标签页时移动按钮。

使用不同的按钮,您将拥有高度凝聚力和松散耦合的代码。更好的设计。更易于维护和管理。代码较少。