我创建了一个usercontrol,我试图将其用作自定义UI上的“tabs”,它应该像TabControl一样运行。 (通过“tab”,我的意思是你点击的位,而不是点击后显示的页面内容)。选项卡位于左侧(与许多应用程序中的属性窗口一样),每个选项卡(应该)由两个标签组成,一个在另一个上面(标题和说明)。
到目前为止这是一段漫长而艰难的旅程,我的方法可能完全错误,但我目前在usercontrol中拥有的是两个标签和一个按钮,所有这些都在TableLayoutPanel中布局。我有一个按钮的原因是我希望控件是一个tabstop,所以(我认为)我需要包含一个tabstop控件。另外,我想捕获某些击键(见下文)。从视觉上看,按钮没有问题,因为我可以使用图像使按钮看起来更好。
无论如何,我希望用户能够使用向上/向下箭头键在标签上上下移动。我通过捕获按钮上的KeyDown(& PreviewKeyDown)事件来实现这一点。那很好。
但是,如果用户在焦点位于选项卡用户控件上时按下Tab键,我希望焦点移动到当前页面中的第一个控件,不移动到下一个选项卡用户控件,它实际上是做什么的。
为了做到这一点,我尝试在所有标签用户控件中禁用除活动按钮之外的按钮,但焦点仍然转移到用户控件本身 - 并且由于没有活动的标签停止,它只是丢失(你看不到它) )。
然后我尝试禁用所有非活动用户控件而不仅仅是按钮,这已经有了一个好处 - 除了现在我的usercontrol中的标签显示为已禁用,我不希望这样。
如何阻止我的用户控件的子控件看起来被禁用? (或者,我怎样才能让tab键忽略我的用户控件而不禁用它们?)
答案 0 :(得分:0)
事实证明,如果不使用禁用用户控件,我可以实现我想做的事情。我可以简单地将TabStop属性设置为false。