プロが教える店舗&オフィスのセキュリティ対策術

 リッチテキストを使ってVBの勉強用にMDIテキストエディタを作っています。

 今、文字列の検索と置換部分を作っているのですが、このときメモ帳の検索で使うようなものはどうやって作ればいいんでしょうか。

 つまり、検索用のフォームを出したまま、テキスト部分を選択状態(色を反転させた状態)にさせたり、下から上への検索をしたいのですが出来ません。

 一応、リッチテキストのFind、もしくはInStr関数を使って、上から下への簡単なものは出来ているのですが、下から上には検索できませんし、検索した後フォーカスをリッチテキストにしなければ、検索した文字列が選択状態にさせられません。

 下から検索させるにはInStrRev関数があることは分かったのですが、これだとFindでは出来る『完全一致する単語のみ検索』などが使えなさそうです。

 まぁ、これは特にどうでもいいのですが(バイナリモードにすれば大文字小文字の区別は出来ますし)、検索用フォームを手前にさせることはどうやっても出来ません。

 色々なサイトにある、『常に手前にフォームを表示』というものも見つけたのですが、これをやっても上手くいきませんし、一旦リッチテキストにフォーカスを移してから再び検索用フォームにフォーカスを移しても選択状態は消えてしまいます。

 どうにかして、Findと同等に下から上へと検索させたり、検索用のフォームを手前にさせたまま続けて検索させるということをさせたいのですが、その方法があれば教えてください。

---------
開発環境
VB6.0SP5
WinME

A 回答 (2件)

反転したい部分をvbHighlight, vbHighlightTextで色付けすればよいのでは?

    • good
    • 0
この回答へのお礼

 いちいちVBの処理で反転させるのはちょっと手間が……

 でも、考え方としては他のものに応用できそうです。ありがとうございます。

お礼日時:2003/01/30 09:49

こんにちは。

maruru01です。

検索フォームを常に前面に出し、そのまま元のフォーム(リッチテキストボックスのあるフォーム、オーナーフォーム)を操作するには、

検索フォーム.Show 0, オーナーフォーム名

とします。
    • good
    • 0
この回答へのお礼

 ありがとうございます。オーナーフォームなるものの存在をすっかり失念していました。

 おかげで、上手いこと出来ました。

お礼日時:2003/01/30 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!