我在C#中为DriveComboBox编写了一个新组件(它是从互联网上找到的ImageComboBox组件继承的),参见代码示例:
public class DriveComboBox : ImageComboBox.ImageComboBox
{
public DriveComboBox()
: base()
{
foreach (ImageComboBoxItem item in allImageComboBoxItems)
{
this.Items.Add(item);
}
}
}此部分代码将添加到驱动器的控件中,在此控件拖入窗体后,项目将添加到窗体代码的设计器中。问题是,一旦程序运行,项目由上面的代码添加,然后设计器代码再次添加它们,因此我们最终得到了双项。
问题是添加项目的位置应该在哪里,或者如何防止设计人员再次添加它们?
发布于 2016-07-08 15:34:14
我也有同样的问题,好像是“视觉?”visual的设计器可以使用运行时代码作为设计时代码。我不明白到底发生了什么,但我成功地避免了这个方法的问题:
protected bool IsInDesignMode
{
get { return DesignMode || LicenseManager.UsageMode == LicenseUsageMode.Designtime; }
}我是这样用的:
public DriveComboBox()
: base()
{
if (IsInDesignMode == false)
{
foreach (ImageComboBoxItem item in allImageComboBoxItems)
{
this.Items.Add(item);
}
}
} https://stackoverflow.com/questions/38269543
复制相似问题