現在のキャレット位置を取得及びその位置に文字列を挿入 (2個) (SNo.041) 1.現在のキャレット位置を取得 2.現在のキャレット位置に文字列を挿入する |
|
使用コントロール | Button1 Button2 TextBox1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) テキストボックスには適当に文字を入力しておいて下さい。 |
1.現在のキャレット位置を取得
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click MessageBox.Show("現在のキャレット位置は、" & _ TextBox1.SelectionStart & " 文字目にあります") End Sub |
|
2.現在のキャレット位置に文字列を挿入する Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click ''現在システムクリップボードにあるデータを取得します Dim iData As IDataObject = Clipboard.GetDataObject() 'クリップボードにテキストデータがあれば If iData.GetDataPresent(DataFormats.Text) Then '現在のキャレット位置に挿入する TextBox1.SelectedText = CType(iData.GetData(DataFormats.Text), String) End If End Sub |
|
キャレット位置には当然ながら、vbCrLf 等の改行文字(2文字分)も含まれます。 文字列を選択している場合は、当然ながら選択開始位置となりますので、選択状態ではその分をプラスしないと正しい位置とはいえません。 正確には、下記のサンプル投稿用掲示板に投稿しているサンプルをご覧ください。 ttp://www.hanatyan.sakura.ne.jp/patio/read.cgi?mode=view2&f=334&no=17 |