0

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

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

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

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

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

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

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

4

1 回答 1

0

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

于 2012-07-24T15:04:02.560 回答