|
.NET TIPS
Windowsフォーム上のコントロールの位置やサイズを固定するには?
デジタルアドバンテージ 一色 政彦
2005/03/11 |
|
|
Visual Studio .NETのIDEのWindowsフォーム・デザイナでは、フォーム上に配置したコントロールを[→][↑]などの方向キーやマウス操作などによって簡単に移動できるため、操作を誤ってコントロールの位置を不用意に変更してしまうといったことがよく起こる。
そこで本稿では、配置が完了したWindowsフォーム上のコントロールの位置とサイズを固定する方法を紹介する。
Windowsフォーム上のすべてのコントロールの位置とサイズを固定する方法
Windowsフォーム上のコントロールの位置とサイズの固定は、IDEのメニュー・バーの[書式]−[コントロールのロック]を選択するか、フォーム上で右クリックすると表示されるコンテキスト・メニューから[コントロールのロック]を選択すればよい。
|
Windowsフォーム上のコントロールのロック |
Windowsフォーム上のすべてのコントロールの位置とサイズを固定しているところ。 |
|
|
メニュー・バーの[書式]−[コントロールのロック]を選択する。 |
|
|
フォーム上で右クリックすると表示されるコンテキスト・メニューから[コントロールのロック]を選択する。 |
|
|
ロックされたフォームやコントロールを選択すると、この画面例のような太めの枠でそのロック状態が表現される。 |
|
以上でフォーム上のすべてのコントロール(フォームも含む)はロック(固定)される。これだけで、コントロールを選択して[→][↑]などの方向キーを押したり、マウス操作によって動かそうとしたりしても、コントロールの移動やサイズ変更はできなくなっている。コントロールのロックを解除する場合も、これと同様の手順を行えばよい。ちなみにC#でもVB.NETでもまったく同じ操作方法である。
特にここで注意すべき点は、フォーム上のすべてのコントロールがロックされるということだ。一部のコントロールだけを指定してロックするには、IDEのWindowsフォーム・デザイナでコントロールを選択して、[プロパティ]ウィンドウでLockedプロパティの値を「True」に指定すればよい。
コントロールのロック状態の設定の格納場所について
いったんVisual Studio .NETを閉じると、このロック状態は消えてしまうのでは? と思うかもしれない。しかしその心配は要らない。
このロック状態はWindowsフォーム専用のリソース・ファイル(例えば「Form1.cs」ファイルなら「Form1.resx」というリソース・ファイル)に格納されているので、ロック状態はプロジェクトを再度開いたときにも維持される。
|
Windowsフォーム専用のリソース・ファイルに格納されたロック状態の設定 |
Windowsフォーム専用のリソース・ファイル(この例では「Form1.resx」)を、IDEのリソース・エディタで開いたところ(「Form1.resx」ファイルをダブルクリックすると自動的に開かれる)。なお、このリソース・ファイルはIDEのソリューション・エクスプローラ上では非表示となっている。これを表示するには、IDEのメニュー・バーから[プロジェクト]−[すべてのファイルを表示]を選択するか、[ソリューション エクスプローラ]の上部にある[すべてのファイルを表示]ボタンをクリックすればよい。 |
上の画面を見れば分かるように、コントロールのロック状態は(「textBox1. Locked」「button1.Locked」「$this.Locked」などのような)「<コントロール名>.Locked」という名前のBool型データとして保存されている(「$this」はフォーム自身を表す)。ロック状態のときは<コントロール名>.Lockedの値が「True」で、そうでないときは「False」だ。デフォルトは当然「False」である。
IDEのWindowsフォーム・デザイナはフォーム上のすべてのコントロールの<コントロール名>.Lockedの値を一括して「True」「False」に設定する仕様となっている。個別のコントロールをロックしたい場合には、[プロパティ]ウィンドウでそれぞれのコントロールのLockedプロパティを「True」に指定する必要がある。
カテゴリ:Windowsフォーム 処理対象:Windowsフォーム・デザイナ |
|
generated by
|
|
更新履歴 |
【2005/3/15】本記事の一部に以下のような誤りがありました。お詫びして訂正させていただきます。
誤 |
一部のコントロールだけを指定してロックすることは(IDEのWindowsフォーム・デザイナの仕様上)残念ながらできないようだ。
|
正 |
一部のコントロールだけを指定してロックするには、IDEのWindowsフォーム・デザイナでコントロールを選択して、[プロパティ]ウィンドウでLockedプロパティの値を「True」に指定すればよい。
|
誤 |
IDEのWindowsフォーム・デザイナはフォーム上のすべてのコントロールの<コントロール名>.Lockedの値を一括して「True」「False」に設定してしまうが、このリソース・エディタを使えば特定のコントロールのみをロックすることも可能だ。しかしそのようなコントロールのロック状態はIDEで想定されていないと思われるため、何らかの問題が生じないとも限らない。従って筆者は、そのような設定を行うことをお勧めしない。 |
正 |
IDEのWindowsフォーム・デザイナはフォーム上のすべてのコントロールの<コントロール名>.Lockedの値を一括して「True」「False」に設定する仕様となっている。個別のコントロールをロックしたい場合には、[プロパティ]ウィンドウでそれぞれのコントロールのLockedプロパティを「True」に指定する必要がある。
|
|
|
Insider.NET 記事ランキング
本日
月間