【问题标题】:Initializing custom ComboBox (WinForms, C#)初始化自定义组合框(WinForms,C#)
【发布时间】:2014-03-25 20:28:06
【问题描述】:

我无法在文档中找到任何适当的指导,所以我在这里问。 我有自定义组合框(继承自默认值),它 - 在运行时 - 应该从远程数据源加载项目(枚举)。

使用哪种方法(事件?)来初始化项目列表?我绝对不想在父容器(即表单)中这样做。

谢谢!

【问题讨论】:

    标签: c# .net winforms combobox custom-controls


    【解决方案1】:

    让我看看我是否明白你想要什么。我假设您创建了一个 UserControl。在这种情况下,您是否尝试过在控件的构造函数中进行操作?我的意思是:

    public class BetterComboBox : System.Windows.Forms.ComboBox
    {
        public BetterComboBox(List<SomeObject> list)
        {
             // This call is required by the Windows.Forms Form Designer.
             InitializeComponent();
    
             //you can pass over the list from parameter or initialize it right here.
             //if you need to call a store procedure or something, do it here.
             this.DataSource = list;
        }
    
        //other methods that you need to override or write
    }
    

    如果您需要处理在视图端完成的其他一些事件,您还可以阅读有关处理程序的信息。希望能帮助到你! =)

    【讨论】:

    • 谢谢...我很清楚自定义构造函数和处理程序...关键是,您不能在构造函数中执行此操作,因为它会在 IDE 中调用,因此会导致数据源等中可能发生级联事件。我的问题是,如果我还没有找到更好的地方;由于这里没有回应(除了你的),我得出的结论是,不是。然后,用 IDE 屏障代码(我个人讨厌)包装我的初始化代码是我的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2010-09-12
    • 2017-07-21
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多