SHOEISHA iD

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

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

ComponentZine(InputMan)

ふりがな入力やIMEの切り替えを自動で行うWPFアプリケーションの作成

InputMan for WPF 1.0JのGcImeManagerコンポーネントを使ったWPFアプリケーションの作成

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

WPFアプリケーションの作成

 では、アプリケーションを作成しましょう。今回作成するサンプルアプリケーションには、上半分にIMEの変換入力モードを保持したTextBoxコントロールを使った入力インターフェイス、下半分にふりがなを自動入力するTextBoxコントロールを使った入力インターフェイスを配置します。

GUIのデザイン

 使用するコントロールは、TextBox、TextBlock、Borderの3つで、いずれもWPF標準のコントロールです。GcImeManagerコンポーネントは、XAMLコードから作成します。

GUIのデザイン
GUIのデザイン

IMEの変換入力モードを保持するGcImeManagerコンポーネントの設定

 まず、IMEの変換入力モードを保持するGcImeManagerコンポーネントの設定を行います。InputMethodクラスを使用してIMEのオンオフ設定とデフォルトの変換入力モードの設定を行います。

 新しいWPFアプリケーション用プロジェクトを作成したら、「GrapeCity.WPF.InputMan」への参照を追加し(「コンポーネントのインストール」参照)、次の1行を加えます。

xmlns:im="http://schemas.grapecity.com/windows/2010/inputman"

 グリッドを2行に分け、上の行にBorder、TextBlock、TextBoxコントロールを3つずつ配置します。

<Grid Height="351" Width="501">
    <Grid.RowDefinitions>
        <RowDefinition Height="138*" />
        <RowDefinition Height="239*" />
    </Grid.RowDefinitions>

    <Border BorderBrush="Olive" BorderThickness="2" Height="92" HorizontalAlignment="Left" Margin="20,22,0,0" 
            Name="border2" VerticalAlignment="Top" Width="460" Background="GreenYellow" />
        
    <TextBlock Name="textBlock1" Text="性" Margin="69,38,0,45" HorizontalAlignment="Left" Width="35" />
    <TextBox Height="25" HorizontalAlignment="Left" Margin="94,35,0,0" Name="textBox1" VerticalAlignment="Top" Width="87" />

    <TextBlock Height="22" HorizontalAlignment="Right" Margin="0,38,279,0" Name="textBlock2" Text="名" VerticalAlignment="Top" Width="28" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="223,37,0,0" Name="textBox2" VerticalAlignment="Top" Width="91" />

    <TextBlock Height="18" HorizontalAlignment="Left" Margin="30,73,0,0" Name="textBlock3" Text="ローマ字" VerticalAlignment="Top" Width="62" />
    <TextBox Height="26" HorizontalAlignment="Left" Margin="94,71,0,0" Name="textBox3" VerticalAlignment="Top" Width="252" />
</Grid>

 「性」入力用TextBoxコントロールの上で右クリックし、 ショートカットメニューから[IMEの設定...]を選びます。「IME状態の設定」ダイアログが表示されるので、このダイアログでIMEの状態を設定します。

ショートカットメニューから「IMEの設定...」を選択
ショートカットメニューから「IMEの設定...」を選択

 まず、「ImeConversionMode」リストの下にある[パターンによる設定]ボタンを押し、「ひらがな」を選びます。これが、変換入力モードの設定です。

「パターンによる設定」ボタンを押し「ひらがな」を選ぶ
「パターンによる設定」ボタンを押し「ひらがな」を選ぶ

 続いて、「PreferredImeState」の[On]をクリックします。これで、フォーカスを受け取ると自動的にIMEがひらがな入力モードでオンになります。そして「AllowSaveImeStatus」にチェックが付いていることを確認します。これで、このTextBoxコントロールはIMEの状態が保存されるようになります。

 「名」用のTextBoxコントロールも、同じようにIMEの状態を設定します。「ローマ字」用TextBoxコントロールでは、IMEは使用しないため「PreferredImeState」の[Off]をクリックします。

「PreferredImeState」の[Off]をクリック
「PreferredImeState」の[Off]をクリック
コンポーネントのライセンス処理

 作成したアプリケーションを実行すると、「アプリケーションにライセンスが正しく付与されていません」というエラーが発生する場合があります。


ライセンスのエラー画面
ライセンスのエラー画面

 これは、アプリケーションにライセンスが正しく組み込まれていない場合に起こります。ライセンス情報ファイルは、どのコンポーネントがライセンス付与されているかを識別するための情報が記述されています。

 通常は、上記ライセンス処理を採用したコンポーネントをフォームに配置することで、Visual Studioによって自動的にライセンス情報ファイルが作成され、プロジェクトに追加されます。ただし、コードからコンポーネントを作成した場合などは、このライセンス情報ファイルが作成されないため、手動で作成する必要があります。

 ライセンス情報ファイルは、「licenses.licx」という名前のテキストファイルになっているので、以下の手順でこの「licenses.licx」ファイルをプロジェクトに追加します。


  1. ソリューションエクスプローラー上のプロジェクトを右クリックし、[追加]-[新しい項目]を選択します。[テキスト ファイル]を選択し、「licenses.licx」という名前のテキストファイルを作成し追加します。
    「licenses.licx」という名前のテキストファイルを作成し追加する
    「licenses.licx」という名前のテキストファイルを作成し追加する
  2. ファイルが追加されたらプロパティを参照し、ビルドアクションが「埋め込まれたリソース」となっているか確認してください。
    「埋め込まれたリソース」を確認する
    「埋め込まれたリソース」を確認する
  3. licenses.licxファイルに、次のライセンス情報を記述して、保存すれば完了です。
    GrapeCity.Windows.InputMan.GcTextBox, GrapeCity.WPF.InputMan, Version=1.0.2010.1108, Culture=neutral, PublicKeyToken=0ba7528ecf28c40a
    

次のページ
ふりがなの自動入力を行うGcImeManagerコンポーネントの設定

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

  • このエントリーをはてなブックマークに追加
ComponentZine(InputMan)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6265 2011/11/15 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング