1

これは本当に奇妙でまれな質問だと思います!!

オブジェクトを継承System.Windows.Forms.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 に答える