【问题标题】:Force labels within disabled user control to display as normal (not disabled)?强制禁用用户控件中的标签正常显示(未禁用)?
【发布时间】:2012-07-24 23:04:02
【问题描述】:

我创建了一个用户控件,我试图将其用作自定义 UI 上的“选项卡”,该 UI 应该像 TabControl 一样运行。 (“选项卡”是指您单击的位,而不是单击后显示的页面内容)。选项卡在左侧(与许多应用程序中的属性窗口一样),每个选项卡(应该)由两个标签组成,一个在另一个之上(标题和描述)。

到目前为止,这是一段漫长而艰难的旅程,我的方法可能完全错误,但我目前在我的用户控件中拥有的是两个标签和一个按钮,所有这些都布置在 TableLayoutPanel 中。我有一个按钮的原因是我希望控件成为制表位,因此(我认为)我需要包含一个制表位控件。另外,我想捕获某些击键(见下文)。从视觉上看,有按钮并没有太大问题,因为我可以使用图像使按钮看起来更好。

无论如何,我希望用户能够使用向上/向下箭头键上下移动选项卡。我通过在按钮上捕获 KeyDown (& PreviewKeyDown) 事件来实现这一点。这很好。

但是,如果用户在焦点位于选项卡用户控件上时按下 Tab 键,我希望焦点移动到当前页面中的第一个控件,而不是到下一个选项卡用户控件,这就是它的实际作用。

为此,我尝试禁用除活动选项卡之外的所有选项卡用户控件中的按钮,但焦点仍移动到用户控件本身 - 由于没有活动选项卡停止,它只会丢失(你看不到它)。

然后我尝试禁用所有非活动用户控件而不仅仅是按钮,这很有效 - 除了现在我的用户控件中的标签显示为禁用,我不希望这样。

如何阻止我的用户控件的子控件看起来像被禁用? (或者,我怎样才能让 tab 键忽略我的用户控件而不禁用它们)?

【问题讨论】:

    标签: .net winforms user-controls


    【解决方案1】:

    事实证明,我可以在不禁用用户控件的情况下实现我想要做的事情。我可以简单地将 TabStop 属性设置为 false。

    【讨论】:

      猜你喜欢
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      相关资源
      最近更新 更多