- PR -

コントロール追加時のデフォルト値

1
投稿者投稿内容
未記入じゃけんど
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 65
お住まい・勤務地: Osaka City
投稿日時: 2006-03-13 15:43
ツールボックスよりドラッグアンドドロップでコントロールにフォームに追加した時の、コントロールのデフォルト値(Buttonであれば、Name:Button1,AllowDrop:false 等)の値を変更することはできるのでしょうか?
知ってる方お願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-13 15:57
こんにちは。

使いたいコントロールを継承して、コンストラクタでプロパティの値を変更した派生コントロールを作成すれば可能だと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-13 16:07
補足です。

この場合は DefaultValueAttribute "も" 同様の値に変更するのが望ましいです。
InitializeComponent メソッド内で初期化されるコードを減らすことができます。

Form にコントロールを追加した時に、プロパティ ウィンドウの該当プロパティが、
太字書体になっている (規定値から変更されている) のは違和感がありますからね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-13 16:20
じゃんぬねっとさん、フォローありがとうございます。
勉強になります。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-13 16:59
引用:

ueさんの書き込み (2006-03-13 16:20) より:

じゃんぬねっとさん、フォローありがとうございます。
勉強になります。


いえいえ、とんでもございません。(;^-^)

質問者さんの例でいきますと、こうなると思います。

コード:

    public class MyButton : System.Windows.Forms.Button {

      //
      // Dispose と System.ComponentModel.Container の実装は省略しています
      //

      #region コンストラクタ 

        public MyButton() {
            this.AllowDrop = true;
        }

      #endregion

      #region AllowDrop プロパティ (override) 

        [System.ComponentModel.DefaultValue(true)]
        public override bool AllowDrop {
            get {
                return base.AllowDrop;
            }

            set {
                base.AllowDrop = value;
            }
        }

      #endregion

    }


AllowDrop プロパティの初期値と規定値を変えるシナリオが思いつかないので、
おそらく例であげたのだと思いますが、ご参考になればと思い書かせて頂きました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)