質問者
Lockedプロパティについて

質問
すべての返信
-
こんにちはぶるーのさん。
Lockedは設計時のみ存在するプロパティです。
その実現方法は以下のURLが参考になると思います。
https://www.microsoft.com/japan/msdn/net/general/custdsgnrdotnet.aspx
恐らくLockedプロパティの動作をカスタマイズしようとするとカスタムデザイナを作ることになると思います。
Lockedと関係ありませんが、当方サイトに簡単なカスタムデザイナの例があります。
ご参考になさってください。
-
質問の追加なのですが、派生したFormで、基底Form上のコントロールのLockedプロパティ値が
保存されないんですけど、何か作法があるんでしょうか?
基底FormにするFormAを作成。適当にコントロールを配置。(Modifiersプロパティ値は「Protected」)
派生FormにするFormBをプロジェクトに追加。手動で次の様にコードを変更。
public partial class FormB : Form
を
public partial class FormB : FormA
と書き換え。FormB上で、基底Form上のコントロールのLockedプロパティを「true」に変更。
プロパティ値変更直後は、マウスでコントロールをドラッグしてもコントロールは移動されないのですが、
ビルド、または、プロジェクトを開きなおすと、Lockedプロパティ値が「false」に戻ってしまいます。
当然、コントロールも自由に移動できます。
派生Form上では基底Form上のコントロールのロックってできないのでしょうか?
三輪の牛さん、回答、ありがとうございます。
>http://www.mahoroba.ne.jp/~mw_ken/netdefaultvalue.html
参考にさせて頂きます。ありがとうございます。
--------------------------------------------------------------------------------------------------------------------------------------------
ここからは本題の内容からずれます。
皆様、ご容赦願います。
三輪の牛さんに紹介して頂いたページで、
>http://www.mahoroba.ne.jp/~mw_ken/netdefaultvalue.html
「AutoSize」プロパティ値って InitializeNewComponent() でしか初期値設定できないのでしょうか?
InitializeNewComponent()のコードをコメント化し、MyLabelのコンストラクタで AutoSizeプロパティ値に
falseをセットしても反映されないのですが、何故でしょう?
-
>Lockedについてはどうなんでしょ、デザイナクラスの動きが変?
新規に作成したプロジェクトで、基底のFormA、派生のFormBしかない状態で、既に
現象が発生するので、VisualStudio側に何か不具合があるんでしょうね。
5種類程のFormレイアウトパターンがあるので、各Formの雛型として、基底Formを
作成し、そこから、各Formを派生させて、と考えていたのですが。
Lockedプロパティなので、実働上、何の問題もないのですが、デザイン時にうっかり
コントロールを動かしちゃう、というのが防げないのであれば、各Formの雛型は
それぞれ別個に、各Form間で何の関係もない状態の物を作るしかないのかな。
>AutoSizeについて
なるほど。
プロパティの初期化は、「一律、ここで」って感じにはいかないのですね。
分りました。