重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

1. カーソルのある行の行頭と行末に文字列を入れる方法を教えてください。
(あいう→□□あいう□□)
2.また、すでに1が行われている場合(もしくは、指定された文字が行頭と行末にあるとき)1と別の文字列を入れる方法も合わせて教えてください。
(□□あいう□□→□□□あいう□□□
□□□あいう□□□→□□□□あいう□□□□)
勝手な質問ですがよろしくお願いいたします。

A 回答 (3件)

そのテキストボックスは単行でしょうか複数行なのでしょうか



コントロールの設定を変更したプロパティなどを記載した方がいいでしょう

単行なら TextBox1.Textなどで表示中のテキストは取得できます

複数行の場合

' GetFirstCharIndexOfCurrentで現在の行を取得
dim nIndex1 as Integer = TextBox.GetFirstCharIndexofCurrent()
' SelectionStartで現在のキャレット位置を取得
dim nPos as integer = TextBox1.SelectionStart
' SelectionStartで現在のキャレット位置を取得
dim nLine as Integer = TextBox1.GetLineFromCharIndex( nPos )
' GetFirstCharIndexFromLineで現在行の次の行頭の位置を取得
dim nIndex2 as integer = TextBox1.GetFirstCharFromLine( nLine + 1 )
dim nLen as integer
if nIndex2 = -1 then
  // 現在行が最終行
  nLen = TextBox1.TextLength - nIndex1
else
  nLen = nIndex2 - nIndex
end if
' 行の内容を切り出す
dim ss as String = TextBox1.Text.SubString( nIndex1, nLen ).Trim
nLen = ss.Length
dim nOffset as integer
if ss.IndexOf("前挿入")<> -1 andalse ss.IndexOf("後挿入")<> -1
then
  ' 以前に追加した行
  ss = "_1_" & ss & "_2_
  nOffset = "_1_".Length
else
  ss = "前挿入" & ss & "後挿入"
  nOffset = "前挿入".Length
end if
' 行頭から選択開始
TextBox1.SelectionStart = nIndex1
TextBox1.SelectionLength = nLen
' 選択文字列の置換
TextBox1.SelectedText = ss
' キャレット位置の復元
TextBox1.SelectionStart = nPos + nOffset
    • good
    • 0
この回答へのお礼

お礼遅れまして申し訳ございません。
うまくいきました。どうもありがとうございました。

お礼日時:2008/09/24 12:54

質問説明が決定的に不十分。


実行していて注目している(画面)ソフトなどは
エクセル・ワード・メモ帳など他ソフト
フォームやその上のコントロール(テキストボックスなど)
その他デスクトップ
など何ですか。
ーー
>. カーソルのある行
カーソルは何度も>ある位置の状態に出来るのではないですか。
だからクリックイベント的なことかな。
Mouseムーブ的なことも考えられる
質問がはっきりしない。
コントロールとして、(1)クリックしたとき(2)且つその位置を
システムから教えてもらう技術は難しいのではないですか。
何でこんなことをやる必要があるのかな。
。Textなどを捉えてから、プログラムで処理する、ではダメなのですか。

この回答への補足

はっきりしない書き方をして申し訳ございません。
カーソルはマウスカーソル(マウスポインタ)ではなく、文字入力をする時に点滅している「|」のようなののつもりでした。
フォーム上のTextBoxコントロールの文字を操作したのです。

補足日時:2008/09/21 17:16
    • good
    • 0

VBE上でのコード記述のことですか?


それとも、Gridコントロールなど上の、扱うデータのお話しですか?

この回答への補足

失礼いたしました。
VB2005を使っていて、TextBoxコントロールです。

補足日時:2008/09/21 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!