SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(PlusPak)

PlusPakのプロパティマネージャアドインで、急なUI変更に対応しよう

~PlusPakによるプロパティ一括変更の活用~

  • このエントリーをはてなブックマークに追加

ダウンロード サンプルソース (28.5 KB)

プロパティマネージャアドインによる拡張内容

コンテキストメニューの拡張

 プロパティマネージャアドインをインストールすると、フォームデザイナでコントロールを右クリックして表示できるコンテキストメニューに「プロパティのコピー」と「コントロールの規定値に設定」が追加されています。

図4 コンテキストメニューの拡張
図4 コンテキストメニューの拡張

 この追加されたメニューがどのような機能をもっているかは、後ほど紹介します。

タスクの拡張

 プロパティマネージャアドインによりタスクの内容も追加されます。こちらもコンテキストメニューと同様に「プロパティのコピー」と「コントロールの規定値に設定」が追加されます。

図5 タスクの拡張
図5 タスクの拡張

プロパティのコピー

 例として、デフォルトの「MS UI Gothic」で開発を進めてきたシステムを取り上げます。もう何十画面も作ってしまったし、そもそも1画面にラベルやテキストだって配置済…という状況を思い浮かべてみましょう。そんな状況で「フォントはメイリオがきれいだと聞いたのでメイリオにしてほしい」といきなり言われたらどうしますか?

コントロールのプロパティを変更しよう

 そういったときこそ、PlusPakのプロパティマネージャアドインの出番です。まずは、動きを確認するために1フォームだけのプロジェクトを作成し、フォーム上に複数のテキストボックスとコマンドボタンを配置したもので確認してみます。

図6 サンプルプロジェクト例(CZ120102)
図6 サンプルプロジェクト例(CZ120102)

 では、一番上のテキストボックスTextBox1のフォントを「メイリオ」に変更してみましょう。

図7 メイリオへのフォント変更例
図7 メイリオへのフォント変更例

 もちろんフォント以外のプロパティも変更が必要ならば、同時に変更してください。

プロパティをコピーしよう

 次に、プロパティを変更したコントロールのコンテキストメニューかタスクから[プロパティのコピー]を選択して[プロパティのコピー]ダイアログを表示します。

図8 [プロパティのコピー]ダイアログ
図8 [プロパティのコピー]ダイアログ

 ダイアログの構成は、左側にコピー元となるコントロールのプロパティ一覧(今回の例でいえばフォントを「メイリオ」に変更したコントロール)が表示されていて、右側にはそのコントロール以外の同種のコントロールが一覧表示されています。

 サンプルでは、テキストボックスTextBox1をコピー元としてそこからダイアログを表示したので、右側に表示されるのはテキストボックスTextBox1以外のテキストボックスです。

 ここで注目したいのは左側のプロパティ一覧にも右側のコントロール一覧にもすべてチェックボックスがついている点です。なぜこのようなチェックボックスがついているのかと言うと、次のような操作を可能にするためです。

  1. コピー元のプロパティを選択できる
  2. コピー先のコントロールを選択できる

 今回は「あとからプロパティを変更したい」というストーリーを想定していますが、複数人での開発時、間違えたプロパティ値が散在してしまった場合にプロパティを揃えるといった使い方もできます。

 それでは、左側で[Font]チェックボックスにチェックを入れ、右側ですべてのコントロールのチェックを付けた状態でダイアログの[OK]ボタンまたは[適用]ボタンをクリックしてください。

 テキストボックスのフォントプロパティを確認すると、すべて「メイリオ」に変更されています。

図9 [プロパティのコピー]でコピーされた値
図9 [プロパティのコピー]でコピーされた値

 たったこれだけの操作でプロパティの変更が可能なので、間違える可能性も無く、特別なノウハウも必要ありません。

複数フォームや複数プロジェクトでは?

 1プロジェクト1フォームでの動きが分かったので「複数フォームや複数プロジェクトのときは?」との興味が沸いてきました。もし、1プロジェクト1フォームのときと同じような手間で実現できれば、実際の開発プロジェクトで使用した時にも「真の便利ツールだ!」と叫べるというものです。

図10 複数プロジェクトの例
図10 複数プロジェクトの例

 サンプルのソリューションは、プロジェクトCZ120101に2フォーム、プロジェクトCZ120102に1フォームがあるソリューションです。

 このソリューションで先ほどと同じように[プロパティのコピー]ダイアログを表示すると、ダイアログの右側にソリューションに含まれているすべてのフォーム上のテキストボックス一覧がチェックボックス付で表示されます。

図11 複数プロジェクトでのプロパティのコピー
図11 複数プロジェクトでのプロパティのコピー

 後は、先ほどと同じようにコピーしたいところだけチェックして[OK]ボタンか[適用]ボタンをクリックすれば一発でプロパティのコピー(必要であれば複数のプロパティ値ですら)が可能です。これはもう「すごい便利!すごい!」と叫ぶしかないですね。

次のページ
コントロールの規定値に設定

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
現役エンジニア直伝! 「現場」で使えるコンポーネント活用術(PlusPak)連載記事一覧

もっと読む

この記事の著者

初音玲(ハツネアキラ)

 国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。 個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。 Microsoft MVP for Windows Development ブログ:http://hatsune.hatenablog.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6383 2012/01/31 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング