DOBON.NET DOBON.NETプログラミング掲示板過去ログ

テキストボックスの選択位置等特定

  • 題名: テキストボックスの選択位置等特定
  • 著者: トマトスープ
  • 日時: 2012/01/23 17:39:42
  • ID: 29646
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[OS:XP 言語:VB.NET]
分類:[.NET]

お世話になります。

VB.NETを勉強中のトマトスープと申します。
現在VisualStudio2008で勉強中です。

まず状況ですが・・・

フォーム上にはテキストボックスが2つとボタンが1つあります。
テキストボックス1には例として「あいうえお」と入力します。
次にテキストボックス1のテキスト中から「うえ」を選択します。
そしてボタンを押すと、テキストボックス2に「あい1うえ1お」
というように選択の開始位置と文字を入れたいのですが

以下コードですが・・・

'選択されている文字の取得
str_sarch = テキストボックス1.SelectedText

これで選択された文字が取得できる所まではこれたのですが
ここからテキストボックス2に「あい1うえ1お」という
処理の部分がどうしても分かりません。

どなかた教えてください。
よろしくお願いします。
'検索対象文字列
Dim strName As String = txt_Terop.Text

'検索する文字
Dim strSearchChar As String = txt_Terop.SelectedText

'検索する文字が見つかった文字位置
Dim lngPoint As Long

'位置を探す
lngPoint = strName.IndexOf(strSearchChar)

'まず選択文字の後ろ側を1をインサート
テキストボックス2 = テキストボックス1.Text.Insert _
(テキストボックス1.SelectedText.Length + lngPoint, 1)

'次の選択文字の前側に1をインサート
テキストボックス2 = テキストボックス2.Text.Insert(lngPoint,1)

これでなんとか「あい1うえ1お」とすることができたのですが
今度は、「あいうえおあいうえお」となった際に
後ろの「あいうえお」を選択しボタンを押すと
「1あいうえお1あいうえお」となってしまいます。

文字列の検索方法を変えるか
選択されている文字の開始位置と終了位置の取得等
何かしらの方法を探しておりますが
いい方法が見つからず困っております。

どなたかお知恵を御貸いただければと思います。

よろしくお願いします。
  • 題名: Re[2]: 進行しました
  • 著者: 魔界の仮面弁士
  • 日時: 2012/01/23 18:41:32
  • ID: 29648
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
■No29647に返信(トマトスープさんの記事)
> Dim strSearchChar As String = txt_Terop.SelectedText

SelectedText で得た文字列を探すよりも、
SelectionStart / SelectionLength で
切り出す位置を調べた方が手っ取り早いかと。
  • 題名: Re[3]: 進行しました
  • 著者: トマトスープ
  • 日時: 2012/01/23 19:38:07
  • ID: 29649
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
魔界の仮面弁士様

ご返事ありがとうございます。

SelectionStart / SelectionLength

こちら2点早速調べてコードに取り込んでみました。
なんとか思っていた通りの結果が返ってくるようになりました。

魔界の仮面弁士様、アドバイスありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板