人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

C#について質問です。

下記コードを実行すると変数「start」に指定された位置から左に検索されることを期待したのですが、実際には末尾の文字しかヒットしませず、最終的にメッセージボックスで「4」と表示されます。
期待通りの動作をさせるにはどうしたらよいでしょうか?
なお、検索オプションを「RichTextBoxFinds.None」に変更すると期待に近い動作をします。(右から左への検索にしたいので期待とは違いますが。)

■コード
richTextBox.Text = "aaaaa";
int start = 2;
RichTextBoxFinds option = RichTextBoxFinds.Reverse;
int index = _targetTextArea.Find("a", start, option);
MessageBox.Show(index.ToString());

■環境
Visual C# 2008 Express Edition


●質問者: kiku-_-san
●カテゴリ:コンピュータ
✍キーワード:C# EXPRESS INDEX オプション コード
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● freemann
●60ポイント

RichTextBoxFinds.Reverseを指定した今回の場合は、変数「start」の役目は検索開始の位置ではなく、検索を終了する場所を指定していることになります。

下記のコードを動かしてみるとわかると思います。

次のリンク先の解説のところの後ろのところに書いてあります。

RichTextBox.Findの解説

RichTextBox rich = new RichTextBox();

rich.Text = "abcde";

int index = rich.Find("c", 2, RichTextBoxFinds.Reverse);

MessageBox.Show(index.ToString());

index = rich.Find("c", 3, RichTextBoxFinds.Reverse);

MessageBox.Show(index.ToString());

◎質問者からの返答

開始位置と終了位置がデフォルトのオプションとは逆なんですね!

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ