[.NET] WinForm 用の、 フリガナ取得コントロール ~ International Feature Pack 2.0 Beta
International Feature Pack 2.0 Beta に含まれている、 YomiganaTextBox コントロールをとりあえずざっくり使ってみる。 Win7RC に VC#2008EE です。
VC# のツールボックスに YomiganaTextBox を追加して、 Form にそれを貼り付けます…
って、 出だしのところでがっくり。 名前空間が YomiganaWinFromControls になってます。
気を取り直して、 ラベルも貼り付けて、 WPF のときと同様に TextChanged ハンドラを追加。
private void yomiganaTextBox1_TextChanged(object sender, EventArgs e) {
this.label1.Text = ((YomiganaTextBox)sender).Yomigana;
}
さて、 実行…
ありゃりゃ、 コントロール内部の OnLostFocus イベントハンドラで例外が orz
Win7RC でやってるからですかね~?
しょうがないので、 継承したコントロールを作って、 OnLostFocus() メソッドをオーバライドして、 とりあえず例外を潰すように改造 f(^^;
やれやれ動いた…
あらあら、 ひらがな指定したのに、 カタカナになってる orz
YomiganaKanaKind の設定が、InitializeComponent() に反映されてないみたいなので、 自前のコードで指定 f(^^;
ふぅ、長かった…

ちゃんと IME で入力したときの読み仮名が出ました。
まぁ最初のβ版なので、 いろいろあります…
※ 要望やフィードバックは MSDN Forum: Visual Studio International Pack へどうぞ。 この記事と同じ内容を、 同フォーラムの 「WinForm で読み仮名を取得できる YomiganaTextBox コントロール (beta版) の仕様・不具合」 に書きました。

最初の画面の状態から BS で末尾の文字を消してみました。 入力した文字を BS や DEL で削除しても、 ふりがなは元のままです。 ふりがなも、 ちゃんと消えて欲しいですね。

「東京都西新宿」 と入れてしまってから入力忘れに気付いて、 後から途中に 「新宿区」 を挿入。 ところが、 ふりがなは末尾への追加になってしまいました。

WPF 用のでは問題が出た 「一の宮」 「市ヶ谷」 は、 問題無さそうでした。

WPF 用のでは変換を確定させる操作 ( Enter やカーソルキー ) をしないと読み仮名が取得できませんでしたが、 これも WinForm 用のでは問題無さそうでした。

IME オンになっているときしか、 読み仮名として出てきません。 IME オフのときは、 そのまま読み仮名として使ってほしいです。
それと、 音引きが半角になっちゃってます。

一度に変換する文字列の中に含まれている空白は、 フリガナにも出てきます。 単独でスペースを入力したときはダメ。
その他の記号類は、 IME の変換を通せば、 読み仮名に出てくるようです。

「ヴ」 や 「ヵ」 の読み仮名も、 ひらがなで出てきます。 素晴らしい!
けど、 このことを知らずに、 Unicode じゃない DB に格納してたりするとハマりますね。
| 固定リンク
« オブジェクト指向のプログラム@Wikipedia | トップページ | [.NET] 読み仮名取得コントロールと、 Excel との違い ~ International Feature Pack 2.0 Beta »
「-プログラミング ( 2009.04-06 )」カテゴリの記事
- はじめての Silverlight 2.0(2009.05.13)
- Silverlight 3 新機能ガイド(2009.06.02)
- NUnit 2.5 がリリースされているので、 Windows 7 RC に入れてみた。(2009.05.25)
- NUnit の "Hello, world!" ~ C# 2008 Express + NUnit 2.5 で、 テストファーストの Step by Step(2009.05.27)
- [.NET] WPF Toolkit に、 グラフ チャートが追加(2009.06.29)
掲示板
blog







コメント