可以在组合框中始终启用按钮吗?

时间:2011-11-29 15:25:54

标签: c# .net visual-studio

我想知道是否可以在始终启用的组框内放置一个按钮。即使组合框不是?

编辑: 这里有2张图片可以解释我正在尝试做的事情:

启用视图: http://www.imagecabin.com/index.php?view=322581721739323a1fdd1bb0d&html=1

禁用视图: http://www.imagecabin.com/index.php?view=32258209592bb28651742381c&html=1

如图所示,红色圆圈按钮是我一直想要点击的按钮。 组框中的开始/停止/暂停按钮的状态由事件处理。这就是我停止服务器时禁用组框的原因。

3 个答案:

答案 0 :(得分:2)

为什么不禁用除按钮之外的所有控件?

而不是禁用你的groupBox
foreach (Control C in yourGroupBox.Controls.OfType<Control>())
   if (C != yourButton)
      C.Enabled = false;

答案 1 :(得分:1)

如果控件的状态(启用vs禁用/可见vs隐藏)独立于父容器,则不应将其置于父控件内。

如果它位于组框内并且组框已禁用,则该按钮也将被禁用。执行此操作的正确方法是将按钮放在组框外部,因为其状态与组框的状态无关。

答案 2 :(得分:1)

我同意@JonH的观点。从用户体验的角度来看,约定至关重要。只有在良好理由时才能打破它们。

如果你完全没有这样做,虽然你可以通过移动组框外部的按钮然后使用绝对定位将按钮放在组框顶部来避免上述启用/禁用问题。它将具有与组框相同的父控件,但它似乎位于用户的组框内。

更新:在看到屏幕截图并了解按钮的作用后,我会:

  1. 将按钮移出组合框并将它们放在上面 工具栏/菜单或屏幕的其他部分。或者......
  2. 构建一个自定义控件,其行为类似于组框(即标题和内容) 区域)有一个按钮,可以引发弹出事件或其他事件 像那样。无论哪种方式,我都会确保按钮显示为 控件标题的一部分,因此意图更直观。