テキストボックスにコマンドボタンを押したらHTMLタグを打てるような設定をしています。
その際、括弧(<B>_</B>など)の間にカーソルをセットしたい(_の位置に)のですがどのコードを使えばいいのでしょう?
SelStartプロパティで、カーソル(キャレット)の位置を指定できます。
また、SelLengthプロパティを使って、範囲選択された文字列の長さを
取得/設定したり、その範囲選択されている文字列を、SelTextプロパティで
取得/設定するような事も可能です。
……ちなみに、「DHTML Edit Control」という、HTML編集用の
コントロールもありますので、こういった物を利用するのも手かも。
http://msdn.microsoft.com/archive/en-us/dnaredcom/html/edcomdownload.asp
テキストボックスに文字を入れていって、一番最後の文字から何文字目にカーソルを置くということはできますか?
SelStartを使ってみたのですが、テキストボックスの一番頭から何文字目というようにしかできなかったのですが。
現在このようにしています(一部ですが)
Private Sub cmdCenter_Click()
txtText.Text = txtText.Text+"<Center>"&" "&"</Center>"& vbCrLf
txtText.SetFocus
txtText.SelStart = 9
End Sub
どこかいけないところがあるのでしょうか?
> テキストボックスに文字を入れていって、一番最後の文字から何文字目にカーソルを置くということはできますか?
Len関数を使えば文字列の長さはわかります。
で,先頭からn文字目にカーソルを置くこともできます。
あとは,小学校レベルの算数が出来れば,
末尾からN文字目にカーソルを置くことが出来ます。
Len関数を用いてうまくできました。
Private Sub cmdCenter_Click()
txtText.Text = txtText.Text+"<Center>"&" "&"</Center>"& vbCrLf
txtText.SetFocus
txtText.SelStart = 13
End Sub
Private Sub cmdCenter_Click()
txtText.Text = txtText.Text + "<Center> " & " " & " </Center>" & vbCrLf
txtText.SelStart = Len(txtText.Text) - 13
txtText.SetFocus
End Sub
が解決時のコードでした。すいません。
文字列の連結というのは比較的重い処理なので、文字列が長くなってくるにつれて、
Text1.Text = Text1.Text & "追加させたい文字列"
という記述は、遅いと感じるようになってくるかも知れません。
その場合は、Textプロパティの替わりに、
Dim Position As Long
Position = Len(txtText.Text)
txtText.SelStart = Position
txtText.SelText = "<Center> </Center>" & vbCrLf
txtText.SelStart = Position + Len("<Center> ")
txtText.SetFocus
のように、SelTextプロパティを使うようにすると、高速化が図れます。
また、「txtText.SelText = "<Center> " & txtText.SelText & " </Center>"」のようにすると、
「範囲選択(文字列を反転させている部分)を、<CENTER>タグで囲む」なんて事もできます。
なるほど、さらに高速化を図ったやりかたですか。
一通り出来上がったら試しにやってみたいと思います。
アドバイスどうもです。
超亀レス&横レスですいません。
似たような質問で解決できていないのでこちらにカキコさせていただきます。
今こんな感じの似たようなコードになってるんですけど
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>
となって★の部分にカーソルが位置してしまうので困ってしまって・・・
なにかうまいやり方はないのでしょうか?
長文&読みにくくてすいません。
ツイート | ![]() |