代码之家  ›  专栏  ›  技术社区  ›  David

用户控制:我缺少什么?

  •  0
  • David  · 技术社区  · 14 年前

    我创建了一个“LabeledTextBoxWithLookupControl”,它继承自UserControl。我在窗体上放置了几个控件。

    现在我开始觉得这是个坏主意。

    当我打电话 TopLevelControl.SelectNextControl(this, true, true, true, true) 从一个 KeyPress 事件分配给用户控件中的文本框,它实际上选择下一个用户控件,我实际上希望它选择下一个用户控件中的文本框。UserControl的CanSelect属性返回true,但我看不到任何简单的方法来更改UserControl的控件样式。

    另外,当我使用Tab Order模式时,我希望它不考虑用户控件本身,而是将user control内部的文本框作为taborder的候选。我是否应该重写用户控件的TabIndex和TabStop属性,并使它们指向文本框的TabIndex和TabStop?

    另外,我应该只公开控件本身的属性,还是应该将每个控件公开为一个属性来设置这些我想要设置的属性,例如label控件的Text属性、LookupControl的click事件和TextBox的Text属性。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jeff Yates    14 年前

    如果你不想 UserControl 要成为一个标签站,而不是它的内容,你必须确保它没有 ControlStyles.Selectable 风格。

    在你的构造器中 用户控件 添加:

    SetStyle(ControlStyles.Selectable, false);