Tab Control共享Winform相同的按钮

时间:2011-11-30 08:00:48

标签: c# winforms button tabcontrol

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

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

1

我希望客户,预订和签入/签出列表共享按钮搜索,编辑,删除和刷新。

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

如果我这样做是正确的:

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

3 个答案:

答案 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代码来移动按钮。

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

相关问题