Visual BasicでTextBoxにabcを追加する方法

このQ&Aのポイント
  • Visual BasicでWindowsフォームアプリケーションを作成している場合、TextBoxにabcを追加する方法について教えてください。
  • Buttonをクリックした際に、TextBoxにabcを追加する方法を知りたいです。
  • Visual BasicのTextBoxにおいて、文字列の途中にabcを追加する方法を教えてください。
回答を見る
  • ベストアンサー

VB Windowsアプリ TextBoxについて

Visual BasicでWindowsフォームアプリケーションを作っています。 下記のようなフォームがあり, ・1つのフォームにTextBoxとButtonが1つずつある ・TextBoxのTextは空 ・ButtonのTextは"abc" 下記のような動作をさせたいです。 ・Buttonをクリックすると,TextBoxにabcが追加で入力される ただし,AppendTextメソッドを使って文字列の末尾に入力するのではなく, ・入力カーソルが文字列の途中にあれば,そこにabcが入力される ・一部の文字列が選択されていれば,その文字をabcに置き換える のような,直接キーボードからabcを入力するときと同じような動作をしてほしいのです。 分かりにくいかもしれませんが,どのようにすれば実現できるか教えてください。

noname#224029
noname#224029

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

textBox1.SelectedText = button1.Text のようなコードでできると思います。 この場合、カーソル位置は挿入文字の直後に置かれて選択長はなしになるので、 キーボードからの入力と"ほぼ"同じ動作になります。 ※Undo等はできないので厳密には同じになりません。 参照URLも合わせてご参考ださい。

参考URL:
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.selectedtext(v=vs.90).aspx?cs-lang=vb
noname#224029
質問者

お礼

ご回答のコードを参考にしたらできました! 分かりやすいご回答,ありがとうございました。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

VBは知りませんが、.NET Frameworkとしてなら…… http://msdn.microsoft.com/ja-jp/library/system.windows.controls.textbox%28v=vs.100%29.aspx SelectionLengthプロパティが0か否かで「範囲選択されているか」がわかります。 SelectionStartプロパティでキャレットの位置(範囲選択されていればその先頭位置)がわかります。 ので、後は文字列の切り貼り…でしょうかね。 SelectionStartプロパティにSelectionLengthプロパティを加算した位置より後ろにある文字列は一時的に保存。 先頭からSelectionStartプロパティまでの文字列を残して"abc"を追加。 さらにその後ろに一時的に保存していた文字列を追加。 できあがった文字列をTextBoxのTextプロパティに設定。 必要なら先にSelectionStartプロパティの値も保存しておいて、Textプロパティ設定後に再設定。 ってところでしょうかね。

noname#224029
質問者

お礼

ご丁寧な回答,ありがとうございました。

関連するQ&A

  • VB2008 textbox入力判断について

    こんばんは、いつもお世話になりました。 VB2008で "ストップワォッチ"と"タイムダウン"のプログラムを作っています。 要望: 1 TextBox1.textが入力しない時、ストップワォッチを実行 (OK) 2 TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 (OK) 3 TextBox1.textの値をクリアされた時、再度ストップワォッチを実行 4 TextBox1.textに文字列入力された時、数字に変更してから タイムダウンを実行 (例:全角12:56 →12:56) 5 TextBox1.textが入力エラーの場合は プログラムを抜け、何もしないこと 下記のソースでしたら、3と4,5はまだできていません。 宜しくお願いします。 ---------------------------------------------------- 'TextBox1.textが入力しない時、ストップワォッチを実行 If TextBox1.Modified = False Then Timer1.Enabled = True datStart = Now() Me.Button1.Enabled = False Me.Button3.Enabled = False End If 'TextBox1.textが入力する時、TextBox1.textの値からタイムダウンを実行 If TextBox1.Modified = True Then dTime = TextBox1.Text Timer2.Interval = 1000 Timer2.Enabled = True End If 'TextBox1.textの値を再度クリアされた時、ストップワォッチを実行 If Len(TextBox1.Text) = 0 Then TextBox1.Modified = False End If -------------------------------------------------------------- 以上

  • TextBox操作で質問

    TextBox操作で質問 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べ、2列目のTextBox(番号…2,5、8、11、14)に文字列があり、1列目のTextBox(番号…1、4、11、10、13)に文字がなかったら、1列目のTextBoxに”あ”の文字列を付加する、のようなことをしたいのですが、2列目に文字列がなくても、1列目に"あ"の文字列が入ってしまいます。どこが悪いのか分かりませんのでご教授願います。 ###入力フォーム###   ううう おおお い ううう おおお   ううう おおお      ↓ ###現状の出力結果#### あ ううう おおお い ううう おおお あ ううう おおお あ あ ###実際に出したい結果### あ ううう おおお い ううう おおお あ ううう おおお Dim i As Integer Dim j As Integer For i = 1 To 13 Step 3 For j = 2 To 14 Step 3 If CType(FindControl("TextBox" & j), TextBox).Text = "" Then If CType(FindControl("TextBox" & i), TextBox).Text = Nothing Then CType(FindControl("TextBox" & i), TextBox).Text = "あ" End If End If Next Next

  • TextBoxに入力された文字列のソート

    TextBoxに入力された文字列のソート TextBoxに入力された文字列のソート 開発環境:Visual Web Developer 2008 express 言語:Visual Basic TextBoxを縦5行横3列に並べた表形式の入力フォームがあり、1列目のTextBox(番号…1,4、7、10、13)に入力された文字列(数値)を基準に、昇順にソートし、行ごと入れ替えるプログラムを作りたいのですが、TextBoxを利用したソートの参考になるものが見つからず息詰まっています。どなたかサンプルや参考になるサイトがあれば、教えてください。 ###入力フォーム### 1  あああ あああ 3  ううう ううう 2  いいい いいい 5  おおお おおお 4  えええ えええ ###実際に出したい結果### 1  あああ あああ 2  いいい いいい 3  ううう ううう 4  えええ えええ 5  おおお おおお

  • textboxの二次元配列で質問

    textboxの二次元配列で質問 Visual Web Developer 2008を使いWebアプリケーションの入力フォームを開発中です。言語はVBです。  複数行のtextboxに入力された文字を連結する方法が分かりません。ネットでいろいろ検索して二次元配列をすれば可能なようですが、分かりやすく書いてあるサイトが見つからず、苦戦しています。列数は10列。行数は50行ぐらいあります。 ↓(サンプル)  例えば、下のような入力フォームのtextboxにあ・い・う・え・お・か・き……と入力された文字列で、buttonをクリックしたら「あいうえおかきくけこ…」と文字列の連結した実行結果を出したい場合です。       列   あ|い|う|え|お| | |   か|き|く|け|こ| | | 行 さ|し|す|せ|そ| | |   た|ち|つ|て|と| | |   な|に|ぬ|ね|の| | |    | | | | | | |    | | | | | | |    textboxが多いので、二次元配列と繰り返し処理(文字がなくなるまで繰り返す)を使って、簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

  • VB2010 TextBoxの文字列に正しく入力されないのは何故ですか

    VB2010 TextBoxの文字列に正しく入力されないのは何故ですか? string型の変数に文字列を入れ、TextBox.Textに代入すると文字列の後ろが切れてしまう。 Dim st As String st="s01114DG000555<0?e09" TextBox.Text = st この場合、TextBox.Textには"s01114DG000555<0"となり、後ろの4文字が切れてしまっている。 ちなみに、 TextBox.Text = "s01114DG000555<0?e09" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • VB2010について

    Microsoft Visual Basic2010で以下のようなブラウザを作ろうとしています。 TextBox1とTextBox2に文字を入力してButton1をクリックすると、TextBox1とTextBox2に入力した文字が自分のメールボックスに届くような事ができるサンプルコードを教えてください。 回答できる方是非お願いします。

  • VS2005 VB.NET Windowsアプリ

    DataGridViewでチェックボックスを表示したり 文字列を表示する列を作りたいのですができますでしょうか? ------------------------------ | textbox  | checkbox  | |-----------------------------| |  abc   |   □     | |-----------------------------| |  def   |  文字    | |-----------------------------| |  def   |   □    | |-----------------------------|

  • VB2010 テキスト書き出し位置

    VisualBasic初心者です。 VB2010でフォームでフォームから複数のTextBoxに入力したものを Buttonクリックイベントでテキストファイルに書き込みを行おうと思っています。 その際、テキストファイルへの書き込み位置を指定したいと思っています。 TextBox1の内容はテキストファイルの1文字目から10文字目 TextBox2の内容は11文字目から20文字目という感じにしたいです。 現在下記のプログラムです。 どなたかご教授ください。 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim write_data As New System.IO.StreamWriter("C:\test.txt", False, _ System.Text.Encoding.Default) write_data.Write(Textbox1.text) write_data.Close() End Sub

  • Visual C♯ フォーム間での値の受け渡し

    Visual C♯ フォーム間での値の受け渡しについて プログラミング初心者です。 今、勉強中なのですが、試行錯誤しても出来なかったので助けていただければと思います。 現在Visual C# 2008を使っております。 フォーム間の値の受け渡しについて、助言をお願いします。 [Form1] ・TextBox1 ・Button1 [Form2] ・TextBox2 ・Button2 1.Form1のButton1をクリックし、Form2を出す。 2.Form2のtextBox2に文字を入力し、Button2をクリックする。 3.Form1のTextBox1に、Form2のtextBox2に入力した文字を表示する。 という、作業をしたいのです。 できればソース付きで教えていただけると助かります。 よろしくお願いします。

  • textboxの繰り返し連結処理

    textboxの繰り返し連結処理 Visual Web Developer 2008を使いWebアプリケーション開発中です。言語はVBです。 複数のtextboxに入力された文字を連結する方法が分かりません。 ↓このようにtextboxに入力された文字   1 2 3 4 5 1 あ|い|う|え|お 2 か|き|く|け|こ 3 さ|し|す|せ|そ 4 た|ち|つ|て|と 5 な|に|ぬ|ね|の Buttonをクリックしたら“あいうえおかきくけこさしすせそ…”というtextboxの連結処理をしたいのですが、textboxの数が200~300と多いので、繰り返し処理を使い簡単にできないでしょうか? 初心者なので分かりづらい質問で申し訳ありません。 参考になるページやコードがあったら教えて下さい。 よろしくお願いします。

専門家に質問してみよう