テキストボックス(エディット)に入力した英字を文字単位で折り返す
VSのテキストボックスを複数行編集に設定し、入力した文章を右端で折り返すようにWordWrap
プロパティをTrueに設定すると、行末にきた英単語が単語単位で折り返されます。これは、そもそも英語圏で開発されたVSを日本語に移植したために、このような仕様になっています。しかし、単語単位で折り返すのではなく、文字単位で折り返したいときもあります。
InputManのエディットコンポーネントでは、CharacterWrap
プロパティを使って、WordWrapのモードを単語単位で行うのか文字単位で行うのかを選べるようになっています。
独自のファンクションキーをフォームに組み込む
フォームに独自のファンクションキーを組み込みたいと思ったことはありませんか? もしそんなことができるのであれば、よりユーザーフレンドリーなアプリケーションを作ることができますよね。
InputManのFunctionkeyコンポーネントは、カスタマイズ可能なファンクションキーをフォームに組み込むことができます。
ここでは、8個のファンクションキーをフォームに設定する方法を紹介します。
コンポーネントの配置とデザイン
コンポーネントをフォームに配置し、次の2つのプロパティを設定します。
1.キーの配列:KeySetsプロパティ
このKeySets
プロパティは、ファンクションキー1つ1つのスタイルをデザインするプロパティで、ボタン表面の文字やイメージの組み込み、ボタンの個数などを設定します。設定は、KeySets
プロパティの値欄をクリックすると表示されるコレクションエディタで行います。
各ボタンの設定は、コレクションエディタのボタンリストから、設定したいボタンを選びそれぞれのプロパティ値を変更します。
また、FunctionKeyコンポーネントをフォームに配置すると、デフォルトでは16個のファンクションキーが組み込まれます。この数を調整したい場合は、コレクションエディタの[ボタン配列...]をクリックすると、使用するファンクションキーの配置をデザインするキーセットエディタが表示されます。
このエディタで[表示するボタン配列]欄にあるファンクションキーをドラッグ&ドロップして、数の増減や配置位置を設定します。
2.ファンクションキーの外観上の設定:StyleSetsプロパティ
StyleSets
プロパティは、FunctionKeyコンポーネントのボタン形状を設定するプロパティです。値欄をクリックすると、StyleSetsコレクションエディタが起動します。
[追加]ボタンの横の▼ボタンを押して、設定したいスタイルを選び、各プロパティを操作してデザインを変更します。
StyleSets
プロパティでスタイルを設定したら、ActiveStyleSet
プロパティにそのスタイルを設定すると、FunctionKeyコンポーネントにスタイルが適用されます。
キーが押された場合の処理
ユーザーがファンクションキーを押すと、コンポーネントには「FunctionKey_FunctionKeyPress」というイベントが発生します。イベントハンドラでは、引数e
のKey
プロパティに押されたファンクションキーの位置がButtonKeys
型の値で格納されるので、これを使用してユーザーがどのキーを押したのかを判断して処理を振り分けます。
次のコードは、[F1]キーを押すとメッセージを表示し、[F8]キーを押すとプログラムを終了します。
Private Sub FunctionKey1_FunctionKeyPress( _ ByVal sender As System.Object, _ ByVal e As GrapeCity.Win.Input.FunctionKeyPressEventArgs _ ) Handles FunctionKey1.FunctionKeyPress If e.Key = GrapeCity.Win.Input.ButtonKeys.F1 Then MessageBox.Show("データを計測器から入力します。") ElseIf e.Key = GrapeCity.Win.Input.ButtonKeys.F8 Then Me.Close() End If End Sub
まとめ
VS標準のコントロールではできない機能も、InputManを使うことで容易に実現できるようになります。
多くの場合、データ入力には業務に固有の表示形式やデータ形式を使うので、入力値に制限を設けておけばつまらない入力ミスを撲滅できますし、独自のファンクションキーをアプリケーションに組み込めれば、処理の場面によってファンクションキーの機能を入れ替えるといったことも容易です。
これらInputManが持っている機能を利用すると、プログラムの品質や生産性をかなり向上できるのではないでしょうか。