• ベストアンサー

メモ帳のような文字列検索

 リッチテキストを使ってVBの勉強用にMDIテキストエディタを作っています。  今、文字列の検索と置換部分を作っているのですが、このときメモ帳の検索で使うようなものはどうやって作ればいいんでしょうか。  つまり、検索用のフォームを出したまま、テキスト部分を選択状態(色を反転させた状態)にさせたり、下から上への検索をしたいのですが出来ません。  一応、リッチテキストのFind、もしくはInStr関数を使って、上から下への簡単なものは出来ているのですが、下から上には検索できませんし、検索した後フォーカスをリッチテキストにしなければ、検索した文字列が選択状態にさせられません。  下から検索させるにはInStrRev関数があることは分かったのですが、これだとFindでは出来る『完全一致する単語のみ検索』などが使えなさそうです。  まぁ、これは特にどうでもいいのですが(バイナリモードにすれば大文字小文字の区別は出来ますし)、検索用フォームを手前にさせることはどうやっても出来ません。  色々なサイトにある、『常に手前にフォームを表示』というものも見つけたのですが、これをやっても上手くいきませんし、一旦リッチテキストにフォーカスを移してから再び検索用フォームにフォーカスを移しても選択状態は消えてしまいます。  どうにかして、Findと同等に下から上へと検索させたり、検索用のフォームを手前にさせたまま続けて検索させるということをさせたいのですが、その方法があれば教えてください。 --------- 開発環境 VB6.0SP5 WinME

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 検索フォームを常に前面に出し、そのまま元のフォーム(リッチテキストボックスのあるフォーム、オーナーフォーム)を操作するには、 検索フォーム.Show 0, オーナーフォーム名 とします。

ikazuti
質問者

お礼

 ありがとうございます。オーナーフォームなるものの存在をすっかり失念していました。  おかげで、上手いこと出来ました。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

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

ikazuti
質問者

お礼

 いちいちVBの処理で反転させるのはちょっと手間が……  でも、考え方としては他のものに応用できそうです。ありがとうございます。

関連するQ&A

専門家に質問してみよう