解説実例で学ぶWindowsプログラミング第2回 継承と属性プログラミングで実現するRAD開発デジタルアドバンテージ2004/12/11 |
![]() |
|
|
|
拡張Windowsコントロールの利用方法
今回作成したような独自コントロールをWindowsアプリケーションなどで利用するには、事前準備として、そのコントロールが実装されたコントロール・ライブラリ(DLLファイル)をプロジェクトの「参照」に追加しなければならない。
■コントロール・ライブラリの参照の追加
プロジェクトの参照に追加するには、次の画面の手順を実行する。
この参照の追加により、プロジェクト内で独自に作成したコントロールが利用できるようになった。しかし、VS.NET IDEのフォーム・デザイナ上でこれらのコントロールを使うには、さらに[ツールボックス]ウィンドウにこれらのコントロールを登録する必要がある。
■ツールボックスへの独自コントロールの追加
ツールボックスに独自コントロールを追加するには、次の画面の手順を行う。
![]() |
|||||||||||||||
| [ツールボックス]ウィンドウへの独自コントロールの登録 | |||||||||||||||
| VS.NET IDEのWindowsフォーム・デザイナ上でこれらのコントロールを使うには、さらに[ツールボックス]ウィンドウにこれらのコントロールを登録する必要がある。 | |||||||||||||||
|
■独自コントロールを使ったプログラムレスRAD開発
後は通常のWindowsフォームの作成手順と同じだ。[ツールボックス]ウィンドウから必要なコントロールやコンポーネントをフォーム上にドラッグ&ドロップし、[プロパティ]ウィンドウでそれらのコントロールやコンポーネントのプロパティを変更する。
![]() |
| 独自コントロールのWindowsフォーム上への配置 |
| [ツールボックス]ウィンドウから必要なコントロールやコンポーネントをフォーム上にドラッグ&ドロップする。 |
本サンプル・アプリケーションにおける、それぞれのコントロールのプロパティ設定については割愛する。詳しくはダウンロードしたサンプル・プログラムを参照してほしい。
今回のプロパティ設定の注意点としては、MDIの子ウィンドウのAutoScrollプロパティの設定についてである。このプロパティをTrueにすると、[Ctrl]+[Tab]キーでMDI子ウィンドウを切り替えるときに、子ウィンドウの表示がおかしくなるというバグがあるようだ。筆者が試した限りでは、子ウィンドウのAutoScrollMinSizeプロパティを指定するとこの問題を解決できた。
■ユーティリティ・クラスの導入
スタート・メニュー画面のフォーム上に配置したボタンをクリックすると、業務処理を実行するためのMDI子ウィンドウを起動する処理を実行する。これは、前回解説した「メニュー項目の処理の実装」とまったく同じ処理である。つまり、今回作成したスタート・メニュー画面と前回作成したメイン・ウィンドウ画面にまった同じ処理が存在することになる。
このように複数のクラスに共通する処理がある場合は、その共通処理を新たなクラスに切り出してまとめておく。このようなクラスは一般的に「ユーティリティ・クラス」と呼ばれる。
具体的には次のようなコードのクラス(本稿では「MenuUtil.cs」というファイル)を新規作成する。
|
|
| 複数のクラス間に共通する処理をまとめたユーティリティ・クラス(C#) | |
| 複数のクラス(この例では、メイン・ウィンドウ画面とスタート・メニュー画面)で共通する処理がある場合、その共通処理を新たなユーティリティ・クラスとして切り出すことは定石だ。 | |
ユーティリティ・クラスでは通常、抽出された共通処理は静的(static)なメソッドとしてクラスに追加する。このようなユーティリティ・クラスは、外部でインスタンス生成されないように、そのコンストラクタのアクセス修飾子に「private」を指定しておこう。
上記のユーティリティ・クラスを作成することにより、前回実装したスタート・メニュー画面の呼び出し処理は次のようなコードとなる。
|
|
| スタート・メニュー画面の呼び出し処理のコード(C#) | |
今回作成したサンプル・アプリケーションでは、ここまでに解説した実装内容のほか、メニュー・バーの項目追加なども実装した。しかし、すべてを解説することは不可能だったので、細かい部分の説明は割愛した。
■
今回はアプリケーションの業務処理機能にアクセスするためのメニュー操作のユーザー・インターフェイスを作成した。その作成を通して、既存のWindowsコントロールを継承したコントロールの作成方法と、そのコントロールの[プロパティ]ウィンドウ上の表示制御を行う属性の指定方法についても説明した。[プロパティ]ウィンドウを活用したRAD型のアプリケーション開発を始めるための取り掛かりくらいにはなれれば筆者として嬉しい。
次回は、顧客管理アプリケーションのデータ登録機能である「顧客データの登録画面」を構築する。よって次回では、引き続き、Windowsアプリケーションのユーザー・インターフェイスの構築手法を解説する。代表的なWindowsコントロールの使い方や、今回説明できなかったユーザー・コントロールについて説明する予定だ。それらの解説が終わり次第、データ・アクセス処理などの実装に入っていく。次回もお楽しみに。![]()
| INDEX | ||
| 解説:実例で学ぶWindowsプログラミング | ||
| 第2回 継承と属性プログラミングで実現するRAD開発 | ||
| 1.スタート・メニュー画面の構築について | ||
| 2.拡張Windowsコントロールの作成 | ||
| 3.属性プログラミングの実践 | ||
| 4.拡張Windowsコントロールの利用方法 | ||
| 「解説:実例で学ぶWindowsプログラミング」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
は.NET開発者中心に生まれ変わりました
スポンサーからのお知らせ
.NET開発者中心コーナー
- - PR -
イベントカレンダー
- - PR -





