• 締切済み

VB 選択中の文字列の両端に文字列を挿入する

現在VisualBasicで簡易のhtmlタグを編集できるようなものを作っています。 そこで一つ困ったことがあるのですが、 選択中の文字列の両端に文字列を挿入することができません。 イメージとしては、 Hello, World! という文字列を選択中に ボタンを押して<b>Hello,World!</b>のように変えるような感じです。 どうか回答よろしくお願いします。

みんなの回答

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

極簡単に書けば、以下の一行だけでも実現できますね。 TextBox1.SelectedText = "<b>" & TextBox1.SelectedText & "</b>" #1の方のヒントを元に、エラー処理等を入れてくださいね。

回答No.1

どこまで自力でできている、またはどんな処理イメージまでなら立てられているのでしょうか? というよりも、どこにある文字列を対象としていて、何をしたときに、結果の文字列をどこにどうしたいのでしょうか。。。 そんでもって Windows アプリなのか ASP.NET なのか WPF なのか SilverLight なのか何も書かれていないし。 プラットフォームが違うと何かが違ってくるのかまで検証してないから何とも言えないですがね。 勝手に解釈します。違っていたら頑張ってください。 Windows フォームのテキストボックスに表示されている文字列の一部または全部を選択している状態で、ボタンをクリックしたら、選択している文字列の前後に "<b>" と "</b>" を連結し、元の文字列全体の中の選択している部分と入れ替える。 テキストボックスに表示されている文字列の中の、選択している部分の文字列はテキストボックスの SelectedText プロパティーで取得できますので、これに "<b>" と "</b>" を連結すればよいかと。 選択している文字列の開始位置はテキストボックスの SelectionStart プロパティーで取得できます。 選択している文字列よりも前の部分を抜き出すには Text の SubString メソッドを使えばよいかと。 「0 文字目から SelectionStart 番目」 が選択している文字列よりも前の部分になります。 選択している文字列の長さはテキストボックスの SeletionLength プロパティーで取得できます。 選択している文字列よりも後ろの部分を抜き出すには Text の SubString メソッドで 「SelectionStart + SelectionLength 番目からすべて」 とすることで取得できます。 あとはこれらのパーツを組み合わせれば目的の処理ができるかと。 老婆心ですが、SelectionLength が 0 なら 「選択していない」 ということになるので、"<b>" や "</b>" を付け加えてはいけないかと。