1

我想这是一个非常奇怪和罕见的问题!

我已经制作了一个继承System.Windows.Forms.Label对象的 Label 控件,因此在设计器视图中变得可见和可用。当我将标签拖到表单上并且 Visual Studio 创建它的一个实例时,我希望它打开一个输入框并询问我它的文本应该是什么。我覆盖了OnCreateControl事件并且它正在工作,但问题是当我运行程序时会发生同样的事情,但我只是希望它在运行时之前在设计器视图中工作。我应该如何检查/避免这种情况?

这是代码:

protected override void OnCreateControl()
{
        base.OnCreateControl();
        this.Text = Microsoft.VisualBasic.Interaction.InputBox("Enter text: ");
}
4

1 回答 1

3

使用该属性DesignMode来查明该组件是否是当前设计的:

protected override void OnCreateControl()
{
   base.OnCreateControl();
   if (DesignMode)
        this.Text = Microsoft.VisualBasic.Interaction.InputBox("Enter text: ");
}
于 2012-10-30T12:18:11.307 回答