玄関へお回り下さい。
現在のキャレット位置を取得及びその位置に文字列を挿入 (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




2004/05/12
2005/09/20
2013/02/17


VBレスキュー(花ちゃん)
VB.NET2003  VB2005