カーソル位置の指定

解決


 2003-12-04 12:58:54  No: 110449  IP: [192.*.*.*]

Q&A掲示板の方に似たような質問があったんですけど
解決に至らなかったのでこちらで質問させていただきます。

今こんな感じの似たようなコードになってるんですけど

Label3 = "<DIV ALING=" + conbo5 + "></DIV>"
Form1.RichTextBox1.SelText = Label3
Form1.RichTextBox1.SelStart = Len(Form1.RichTextBox1.Text) - 6
Form1.RichTextBox1.SetFocus

これだと
『RichTextBoxの一番最後の文字から6番目の文字にカーソルを置く』
ってなってしまって、どうも都合が悪いんです。つまり・・・

<CENTER>ビジュアルベーシックの掲示板</CENTER>

っていうタグがあって

<CENTER>ビジュアルベーシックの掲示板</CENTER>☆

☆の部分にカーソルを合わせて別のタグの入力をするなら問題ないのですが
例えば

<CENTER>☆ビジュアルベーシックの掲示板</CENTER>

この☆の位置で上記のコードを使用してタグを挿入した場合、

<CENTER><DIV ALINK=LEFT></DIV>ビジュアルベーシックの掲示板</C★ENTER>

となって★の部分にカーソルが位置してしまうので困ってしまって・・・
なにかうまいやり方はないのでしょうか?
長文&読みにくくてすいません。

編集 削除
mady  2003-12-04 13:36:32  No: 110450  IP: [192.*.*.*]

今のソースを書く前に、まず何をしたいのか書かないと
なかなか分かってはもらえませんよ。

とりあえず今のソースを生かすのであれば、現在のカーソルの
後ろに何文字あるのか取得して、その文字数分引けばいいだけです。

あらかじめ最初の位置を取得しておき、挿入した分ずらすというほうが
スマートだとは思うのですが…

編集 削除
 2003-12-04 14:34:45  No: 110451  IP: [192.*.*.*]

あぁすいません!
Q&Aからのコピペだったんで何をしたいかが抜けてました!

現在タグを挿入するコードを作成中なんですけど、挿入したらカーソルが
<B>★</B>  のように★の位置に自動的にくるようにしたいんですがどうしたらいいんでしょうか?という質問でした。

>あらかじめ最初の位置を取得しておき、挿入した分ずらすというほうが
>スマートだとは思うのですが…

たしかにそうですよね。
そうするのが一番だとは思ってたんですけどやり方がわかんなくて・・・

編集 削除
mady  2003-12-04 14:41:51  No: 110452  IP: [192.*.*.*]

それも何がわからないのか書いてもらえないと…

現在の位置の取得は
Form1.RichTextBox1.SelStart
です。

P = Form1.RichTextBox1.SelStart
挿入処理
Form1.RichTextBox1.SelStart = p + Len(conbo5) + 固定の文字数

こんな感じでではどうでしょう?

編集 削除
 2003-12-04 14:54:26  No: 110453  IP: [192.*.*.*]

madyさんありがとうございます!
解決してしまいました^^;

解決時のコード
Label3 = "<DIV ALING=" + conbo5 + "></DIV>"
P = Form1.RichTextBox1.SelStart
Form1.RichTextBox1.SelText = Label3
Form1.RichTextBox1.SelStart = P + Len(Label3.Caption) - 6
Form1.RichTextBox1.SetFocus

変な質問してごめんなさいでした・・・

編集 削除