我想知道是否可以使用不同标签页共享的固定数量的按钮。但是我不知道如何实现这一点。你们有什么想法吗?
下面是我的gui的截图,这样你们所有人都能更清楚地了解我的意思。
我希望客户,预订和签入/签出列表共享按钮搜索,编辑,删除和刷新。
有可能吗?或者我应该为每个标签页创建差异按钮吗?
如果我这样做是正确的:
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;
}
答案 1 :(得分:0)
是的,您可以在运行时更改按钮的.Parent属性 - 但是将按钮移到标签控件之外会不会更好?
答案 2 :(得分:0)
我觉得你应该为每个标签页创建不同的按钮,因为每个标签页都在不同的实体上运行。如果只有一组按钮,则必须先检查选择了哪个标签页,然后再进行操作。所以你将有一个很大的方法做很多事情。
另外,当选择标签页时,您将需要编写额外的UI代码来移动按钮。
使用不同的按钮,您将拥有高度内聚和松散耦合的代码。更好的设计。更易于维护和管理。更少的代码。