【问题标题】:Tab Control Shares The same buttons WinformTab Control Shares 相同的按钮 Winform
【发布时间】:2011-11-30 08:00:47
【问题描述】:

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

这是我的 gui 截图,以便大家更清楚地了解我的意思。

我希望客户、预订和入住/退房列表共享搜索、编辑、删除和刷新按钮。

有可能吗?还是应该为每个标签页创建差异按钮?

如果我这样做是否正确:

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

【问题讨论】:

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

标签: c# winforms button tabcontrol


【解决方案1】:

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

然后,当您更改选项卡 (TabIndexChanged) 时,从前一个选项卡中删除事件处理程序,并为新选项卡添加事件处理程序:

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

【讨论】:

    【解决方案2】:

    是的,您可以在运行时更改按钮的 .Parent 属性 - 但将按钮移出选项卡控件不是更好吗?

    【讨论】:

      【解决方案3】:

      我觉得你应该为每个标签页创建不同的按钮,因为每个标签页都在不同的实体上操作。如果只有一组按钮,则必须首先检查选择了哪个标签页,然后进行操作。所以你将有一个大方法来做很多事情。

      加上,将有额外的UI代码,您必须编写以在选中选项卡页面时移动按钮。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 2023-03-24
        相关资源
        最近更新 更多