none
デザインモードでプログラムが動作することを確認したい RRS feed

  • 質問

  • こんにちは。
    C#2010で開発しています。
    デザインモードでもプログラムが動作することがあり、
    それを制御するためにDesignModeというプロパティがあることを
    知りました。
    勉強のため、デザインモードでプログラムが動作することを
    プロパティによって制御してみようと思ったのですが、
    どのように検証すれば良いか分かりませんでした。
    どのようなコントロールで、どのようにプログラムすれば、
    デザインモードでプログラムが動作するのでしょうか?
    TextBoxやLabelのコントロールをFormに配置して
    MouseEnterイベントで背景色を変更してみました。
    しかし、デザインモードで背景色が変わることはありませんでした。
            private void textBox1_MouseEnter(object sender, EventArgs e)
            {
                this.textBox1.BackColor = Color.Red;
            }
            private void label1_MouseEnter(object sender, EventArgs e)
            {
                this.label1.BackColor = Color.Red;
            }
    デザインモードでも動作するコントロールや、
    イベントには制限があるのだと思うのですが、ご紹介頂けませんか?
    ぜひ、よろしくお願い致します。
    2011年12月10日 6:04

回答

  • ユーザーコントロールを一つ作って、コンストラクタや色々なイベントハンドラ内に

    MessageBox.Show("On ...");  // ... はメソッド名にする。

    と記述します。

     

    そのユーザーコントロールをデザイナーでフォームに配置します。

    そのデザイナーを一度閉じてから再表示してみましょう。

     

    • 回答としてマーク リオ 2011年12月11日 7:49
    2011年12月10日 11:57

すべての返信

  • デザインモードは、TextBoxなどのコントロール(正確にはコンポーネントかな)の作者向けの機能です。

    コントロール利用者側でその機能に触れることはなく、デザインモードについて誤解されていると思います。

    2011年12月10日 8:38
  • ユーザーコントロールを一つ作って、コンストラクタや色々なイベントハンドラ内に

    MessageBox.Show("On ...");  // ... はメソッド名にする。

    と記述します。

     

    そのユーザーコントロールをデザイナーでフォームに配置します。

    そのデザイナーを一度閉じてから再表示してみましょう。

     

    • 回答としてマーク リオ 2011年12月11日 7:49
    2011年12月10日 11:57
  • 佐祐理さん
    ありがとうございます。
    コンポーネントを作成しないと確認できないのですね。
    コンポーネントの利用者側の機能だと勘違いしていました。
    galacoさん
    ありがとうございます。
    現象を確認することができました。
    確認したかったことが実現できました。
    2011年12月11日 7:49