【问题标题】:Could not find a way to fill controls inside UserControl C#找不到在 UserControl C# 中填充控件的方法
【发布时间】:2013-03-22 18:31:52
【问题描述】:

我正在使用包含字段、复选框、文本区域、网格等的 UserControl 来制作这样一个选项卡式“产品版本控制”。在运行时,当我添加一个新选项卡(就像我们在浏览器上一样)时,我会实例化一个新的 UserControl(其中包含所有组件)。问题是:我可以获取所有内部组件值并填充一个对象以保持,但不能相反。我可以从 Object 中获取所有值并将它们设置为内部组件的 EditValue(或 Text/Value 属性)属性,但它们不会向用户显示。

考虑:

  • 我所有的内部组件都有公共的 set/get 方法,如下所示
public class TabVersion : UserControl { ... public DevExpress.XtraEditors.SpinEdit seRevision { get { return _seRevision; } set { _seRevision = value; } } ... }
  • 在 TabVersion 类中,我有一个“填充”方法,它接收一个“版本”对象并设置所有内部组件的“EditValue”属性,如下所示:
public class TabVersion : UserControl { ... public void FillTab(Sheet sheet) { ... this.seRevision.EditValue = sheet.NumRevision; ... } ... }
  • 在运行时,所有 EditValue 组件属性都已填充但不向用户显示。我是否必须为我的用户控件中的每个组件设置“启用”或“可见”属性?

有什么想法吗?

提前谢谢你。

【问题讨论】:

  • 您是否将控件添加到任何地方的 UserControl 中?如果可以,您可以显示代码吗?
  • 嗨@JaredPar 谢谢你的回答。我用 VS2008 Designer 创建了我的用户控件,就像一个表单(定位、调整大小等)。选项卡创建方法可以看here.
  • 大家好,有什么想法吗?提前谢谢你。
  • 除非我们看到这些控件是如何添加到容器控件中的,否则很难提供帮助。需要一些代码或 XAML,以便我们了解它们如何交互
  • 只是分享一个想法,也许那些“未显示”的组件值来自运行时生成的组件,或者没关系?

标签: c# winforms tabs devexpress components


【解决方案1】:

嗯...在没有目标的情况下到处搜索之后,我编写了一个“Fill”方法来填充我的用户控件中的所有 DevExpress 控件,并在父窗体的“Shown”事件中调用它。我认为这是 DevExpress 的一个错误,因为当我给它们各自的值时,所有 Windows 默认组件都可以正常工作。就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多