C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 52 を表示中)
■28859 / )  Re[2]: GetPositionFromCharIndexについて
□投稿者/ よねKEN (212回)-(2008/12/02(Tue) 11:06:30)
2008/12/02(Tue) 11:07:36 編集(投稿者)

その動作になる理由をTextBoxBase、TextBox、RichTextBoxのソースコードを読んで調べてきました。

> (正確なところはEM_POSFROMCHARメッセージに対する各コントロールがどう応答するのかの
> 仕様を確認しないとわかりませんが)

EM_POSFROMCHARメッセージといったWindowsAPIレベルの部分以前の話で、
それぞれのコントロールでのindexの範囲チェックによる動作でした。

TextBoxBase → index < 0 || index >= Text.Length だったら Point.Emptyを返す
TextBox   → TextBoxBaseと同じ
RichTextBox → RichEditのメジャーバージョンが2だったら、TextBoxBaseと同じ
        それ以外なら、index < 0 || index > Text.Length だったら Point.Emptyを返す

RichTextBoxでRichEditのメジャーバージョンが2以外のときだけ、テキストの末尾+1までOKなようです。

ちなみに以下のサイトのRichEditのバージョンについての情報を参照する限りでは、
.NET Framework2.0のサポート環境だとWin98の場合だけ注意が必要そうですね。
http://www.river.sannet.ne.jp/yuui/richedit.html

.NET Framework2.0のサポート環境は以下のシステム要件から
http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=ja
返信 編集キー/


管理者用

- Child Tree -