PowerTools InputMan for Windows Forms 8.0J > 製品の概要 > 旧バージョンからの変更点 > 4.0Jから5.0Jへの変更点 |
InputMan for Windows Forms 5.0Jで追加された機能および、InputMan for .NET 4.0J Windows Forms Ed.からInputMan for Windows Forms 5.0Jの変更点について解説します。
マスク、日付、数値、タイムスパンの各コントロールでは、入力のフィールドがオブジェクト化されました。フィールド単位でスタイルの設定やイベントハンドリング、各フィールドに応じた機能が提供され、1つのコントロールとして可能な表現力の幅が広がりました。例えば、次のような機能を実現できます。
スタイル入力フォールド毎にフォントや文字・背景色やマージン等の書式スタイルを設定できるようになり、1つのコントロールで可能な表現力が格段に向上しました。これまでのような単一のスタイルではなく、コントロール内で自由にスタイルをデザインできるようになるため、視覚的にインパクトのある入力フォームを実現できます。なお、旧来の文字列によるキーワードによる書式設定でフィールドを設定することもできるため、新たな学習をすることなく利用が可能です。
イベントハンドリングフィールド単位でEnterやLeaveといったイベントが用意されているため、例えば、入力中のフィールドだけハイライト表示したり、入力フィールドに応じてヒントなどのメッセージを表示したり、きめ細やかな機能の実装が可能です。
ドロップダウンフィールドマスクコントロールの列挙型のフィールドは、フィールド単位でドロップダウン機能を利用できます。1つの入力コントロール内に複数の選択肢をもった入力コントロールを実現できます。
マスキングマスクコントロールのパターンフィールドは、特定のフィールドのみパスワード入力のように入力文字を特定のキャラクタに置き換えて表示することができます。表示だけでなく、マスキングされたフィールド内の値はクリップボードへのコピーも制限されます。
コントロールに入力された値をチェックするための検証コンポーネントが新しくなり、その機能や使用方法が格段に向上しました。新しい検証コンポーネントは、必須入力、範囲チェック、値比較をコンポーネントのプロパティ設定で実現できます。エラーの通知も、アイコンやバルーンチップの表示、前景色や背景色の変更といった多彩なアクションをコントロールに組み込んでいるため、コーディングの必要はありません。
また、InputManのコントロール用の検証コンポーネントだけでなく、Visual Studio 標準のコントロールでも利用が可能な汎用の検証コンポーネントも提供します。
コンポーネント | チェック機能 |
---|---|
日付時刻検証コンポーネント | 他のコントロールの値と比較、値と比較、入力範囲、データタイプ |
数値検証コンポーネント | 他のコントロールの値と比較、値と比較、入力範囲、データタイプ |
タイムスパン検証コンポーネント | 他のコントロールの値と比較、値と比較、入力範囲、データタイプ |
汎用検証コンポーネント | 必須入力、データタイプ、入力可能リスト、禁止文字列、サロゲートペア文字、正規表現、カッコの一致、数値範囲、日付範囲、数値型コントロールとの比較、数値との比較、日付型コントロールとの比較、日付値との比較 |
コンボコントロールとリストコントロールが新しいアーキテクチャで再構築され、よりパワフルなコントロールに生まれ変わりました。カラムの数の制限がなくなった他、新しいデータバウンド機能の追加やリストボックス内のスタイルを自在に設定できるなど大幅に機能強化されました。
GcTextBoxコントロールのMaxLengthUnit プロパティを使用すれば、JIS2004で追加されたJIS第3、第4水準文字の表示、入力のほか、サロゲートペア文字を1文字として扱うか、4バイトとして扱うかの指定が可能です。また、Format プロパティにはサロゲート文字を制御するキーワードTが用意されており、簡単に入力をフィルタリングすることができます。
また、検証コンポーネントを使えば、サロゲート文字の入力を抑制する機能も簡単に追加できます。
コントロールの描画にかかる速度が改善されます。前バージョンと比較し、多くのコントロールで30%以上短縮しています。以下は、4.0Jと5.0Jとの描画速度比較です。
コントロール名 ※ カッコ内は4.0Jのコントロール名 |
描画速度(s) | 差(%) | |
---|---|---|---|
4.0J | 5.0J | ||
GcTextBox (Edit) | 0.443 | 0.280 | - 36.60 |
GcMask (Mask) | 0.233 | 0.233 | - 52.37 |
GcCharMask (CharMask) | 0.532 | 0.310 | - 41.51 |
GcDateTime (Date) | 0.644 | 0.624 | - 3.13 |
GcNumber (Number) | 0.754 | 0.399 | - 46.98 |
GcTimeSpan (TimeSpan) | 0.744 | 0.492 | - 33.84 |
GcComboBox (Combo) | 0.711 | 0.492 | - 30.65 |
GcListBox (List) | 0.526 | 0.284 | - 45.97 |
リッチテキストコントロールはToolStripとRichTextBoxを組み合わせたコントロールです。リッチテキストの編集によく使われるフォントや色、段落設定など、必要な編集機能が予め用意されており、これらの機能はコントロールのツールバー(ToolStrip)に提供されます。ツールバーに表示するアイコンは自由にカスタマイズできるため、簡易のリッチテキストエディタ作成も容易です。
ショートカットコンポーネントが追加されます。ショートカットコンポーネントは、コントロールの機能を特定のキーに割り付けるショートカットが独立したコンポーネントで、InputManのコントロールに限らず、標準のコントロールやサードパーティ製のコントロールにも機能を拡張できます。
また、特定のショートカット機能だけなく、コントロールのメソッドもキーに割り付けることが可能なため、広範囲で利用可能なコンポーネントです。
テキストコントロールやマスクコントロール等の入力コントロールに住所検索用の機能を拡張するコンポーネントです。郵便番号の他、地域コードや電話番号からの住所情報を取得し指定したコントロールへ値を表示します。
各入力コントロールにボタンを自由に追加できます。
ボタンの種類には、カレンダーや電卓等のドロップダウン機能を提供するドロップダウンボタンや、コントロールの値をインクリメントするスピンボタン、コントロールにカスタム機能を提供するサイドボタンやシンボルボタンを追加することができます。ボタンはコントロールの左右および入力領域の内側・外側へ自由に配置できます。各ボタンのプロパティは、デザイン時に直接選択して変更が可能です。
次の2つのプロパティが追加され、日付時刻コントロールの入力操作が改善されました。少ない操作で入力が完結できるようになります。
入力モード(FieldEditMode プロパティ)日付の入力方法が3つのモードから選択できます。
コントロールの値が空のときに入力候補となる値を設定しコントロールに表示できます。表示された入力候補値は、そのまま、もしくは部分的に変更して入力値を確定できます。
数値コントロールのスピン機能に、桁(Digit)単位で値を増減するモードを追加しました。SpinMode プロパティで設定できます。
コントロールにサイドボタンとして追加された個々のボタンは、デザインウィンドウ上からプロパティを設定することができます。
LineSpace プロパティを使用してテキストコントロールを複数行で表示したとき、行間のスペースを設定できるようになりました。
コントロールの境界線やドロップダウンボタンの描画などWindows Vistaスタイルに対応しました。
ツールバーに表示されるコントロールと同様の表示を実現する描画スタイルProfessionalを追加しました。
DropDownオブジェクトでは、ドロップダウンの表示方向を設定できるようになった他、ドロップダウンの開閉時のアニメーション(スクロール、スライド、フェードなど)から設定できるようになりました。
フォーム上のコントロールのフィールドスタイルを設定するためのコンポーネントです。
5.0Jでマスクや日付などのコントロールに追加されたフィールドオブジェクトのスタイルは、これまでコントロール1つ1つ個別に設定を行う必要がありました。しかし、このフィールドスタイラーを使えば、複数のコントロールのスタイルを同時に定義できるようになります。
フィールドスタイラーでのスタイル定義は、フィールドを入力フィールドとリテラルフィールド分け、それぞれを別に設定します。
また、フィールドのイベントを利用してコーディングする必要のあったアクティブフィールドのスタイルもフィールドスタイラーで設定できるようになります。
定義したスタイル設定はインポート/エクスポート機能により、他の開発環境にコピーすることも可能です。
フィールドクラスに提供されていたイベント(EnterやLeaveなど)と同様のイベントが各コントロールのクラスにも追加されました。コントロールから利用できることにより、フィールド毎にイベントプロシージャを実装する必要がなくなるなど、保守性に優れた実装が行えるようになります。また、デザイン画面上からイベントハンドラを追加することも可能になります。
新たにコントロールに追加されたイベント次のコレクションでは文字列型のキーを設定できるようになります。インデックスだけでなくキーを使ってコレクション内の要素を指定することができるようになります。
Fields、DisplayFields、SideButtons、ValidateItems、ValidateActions
Maskコントロールの次の2つのフィールドには、フォーカスを設定するFocus()メソッドが追加されました。
フィールドのTextプロパティに値を設定できるようになりました。
GcComboBoxとGcListBox にSelectedValueプロパティが追加されました。
InputMan for Windows Forms 5.0J では大幅な機能強化と製品構成の変更を行ったために、InputMan for .NET 4.0J Windows Forms Ed. 以前のバージョンとはクラスやメンバなどの互換性は維持されず、上記のように名前空間も変更されました。