首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动代码生成C#用户控制

自动代码生成C#用户控制
EN

Stack Overflow用户
提问于 2016-07-08 14:48:03
回答 1查看 103关注 0票数 1

我在C#中为DriveComboBox编写了一个新组件(它是从互联网上找到的ImageComboBox组件继承的),参见代码示例:

代码语言:javascript
复制
public class DriveComboBox : ImageComboBox.ImageComboBox
{
    public DriveComboBox()
        : base()
    {
        foreach (ImageComboBoxItem item in allImageComboBoxItems)
        {
           this.Items.Add(item);                
        }
    }
}

此部分代码将添加到驱动器的控件中,在此控件拖入窗体后,项目将添加到窗体代码的设计器中。问题是,一旦程序运行,项目由上面的代码添加,然后设计器代码再次添加它们,因此我们最终得到了双项。

问题是添加项目的位置应该在哪里,或者如何防止设计人员再次添加它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-08 15:34:14

我也有同样的问题,好像是“视觉?”visual的设计器可以使用运行时代码作为设计时代码。我不明白到底发生了什么,但我成功地避免了这个方法的问题:

代码语言:javascript
复制
protected bool IsInDesignMode
{
    get { return DesignMode || LicenseManager.UsageMode == LicenseUsageMode.Designtime; }
}

我是这样用的:

代码语言:javascript
复制
public DriveComboBox()
    : base()
{
    if (IsInDesignMode == false)
    {
        foreach (ImageComboBoxItem item in allImageComboBoxItems)
        {
           this.Items.Add(item);                
        }
    }
}  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38269543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档