• ベストアンサー

VB TextBox中のn行目を取り出したい

VB2015, OS=W10x64 TextBoxに複数行が入っています。 その中からnを指定してn行目を取り出したいのです。 TextBox1.Text(n)としたら、1行目の文字列の最初からn番目が取り出せましたがn行目を取り出したいのです。 TextBox1でなくてもListboxとかListViewでも構いません。 宜しくお願い致します。

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

  • ベストアンサー
  • kteds
  • ベストアンサー率42% (1876/4425)
回答No.2

TextBox1.Text(n)ではなくて TextBoxの行はLinesを使います。 TextBox1.Lines(n) を試してみてください。

Kumasan2016
質問者

お礼

ktedsさん TextBox1.Text.Line(n)とかは駄目でしたが、教えて頂いた TextBox1.Lines(n)で解決しました。 有難うございました。 お礼を書いたはずなのですが、送り忘れ見たいです。 今後ともよろしくお願いいたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • _backyarD
  • ベストアンサー率34% (199/580)
回答No.1

手元に環境が無いので実コードでは示せないのですが…… 複数行設定されているTextBoxの場合、おそらくですが改行コードが文字列に入っているはずです。ですので、文字列全体を一度取り出して、改行コードで区切り、区切った文字列1つ目、2つ目がそれぞれ1行目、2行目……となるとおもいますがいかがでしょうか? 改行コードで文字列を区切る方法については別途調べてください(改行コードで分割をかけるか、改行コードの文字位置を順次しらべて前の改行コードからの範囲指定で切り出すか……やりかたはいくつもあるかと思います)。 もし改行されていなくてテキストボックスの幅が狭いために複数行になっているのであれば上記の方法は使えませんが……

Kumasan2016
質問者

お礼

_backyarDさん 改行コードを数えて対処する方法考えてましたが、TextBox1.Lines(n)を教えて頂きましたの、この方法で解決です。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VB2010の TextBox文字について の 質問

    VB2010の TextBox文字について の 質問 お尋ねします VB2010_Express版で プログラムを作っている者です Form1にTextBox1を貼付け、 そのTextBox内に 複数行に別けて 文字を記入します しかしDebug開始=run を すると、 TextBox内の文字列の背景が暗転し、 TextBoxのBackColorの色の上に 表示してくれません 念のために BackColorは薄黄色[MS 255 255 192 ]で、 ForeColorは 焦茶色の[Web Maroon]です runさせた後の 文字表記位置に 各文字ごとに 青色のBackColorが 現れ、 即ち、青色の枡目ごとに 焦茶色の 文字列が 現れ、 ForeColorの薄黄色の上に焦茶色の文字が 出てくれません そうして Form1.Designer.VB の コマンド群を眺めても、 TextBox1の プロパティウィンドウ を 見て廻っても、 それらを変更しそうなコマンド文や項目が 判らないのです 文字位置の背景色が青色に変らずに、指定したBackColor上で表示させるには、 どうしたら良いのか、お教え下さい 宜しくお願い申し上げます ____ akqsp より ____

  • 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" とすると、正常に全文字数が入る。 半角文字列の塊なのに、どうしてこのようなことが起きるのでしょうか? また、これの対応策は何ですか? 以上、よろしくお願いします。

  • 【C#】textBoxの指定行のデータを削除

    凄く基本的なことかもしれないのですが色々検索しても見つからなかったので質問させてください。 Visual C# 2010を使っています。 textBoxのMultiLineをtrueにして複数行書けるようにしています。 そこで、プログラム上で指定の行を削除したり書き換えたりする方法を知りたいです。 指定の行のデータを取得する方法はわかったのですが、応用できませんでした。 MessageBox.Show(textBox1.Lines[0].ToString()); で、1行目のデータをMessageBoxで表示できました。 なので、以下のように書けば削除できるかと思いましたがダメでした。 textBox1.Lines[0] = ""; もしくは textBox1.Lines[0].Remove(0); 目的は、以下のような複数行のデータがあった場合に指定の行を消すといったことです。 1234 5678 9012 で、例えば、2行目を消して 1234 9012 としたいです。 textBox1.Text = textBox1.Text.Replace(textBox1.Lines[0], ""); とやって置き換えることはできるのですが、同じデータがある場合に全て置き換わってしまうのと、改行が残ってしまうので微妙です。 よろしくお願いします。

  • VB.NETのWindowsプログラムのTextBox(複数行)で、行追加時に自動でスクロールさせるには?

    VB.NETでプログラムを作っています。 Windowsプログラムに複数行可能なTextboxを設置し、スクロールバーがついています。 ここに情報が一行ずつ入っていくのですが、テキストボックスを越えると表示外に追加されていくので見えません。 常に一番下にするにはどうすればいいのでしょうか?

  • VB2015 ListBoxの二次元配列を呼出す

    始めまして。 趣味でVBソフトを作りたいと奮闘中です。 ExcelVBAやC#の簡単ソフトを作った経験があります。 パソコン環境は、W10x64、VB2015です。 ListBoxに2次元配列で下記のように書き込み、選択した行の右側のデータ(欄2)を他のTextBoxに表示させたいのです。 下のデータを2次元配列にして読み込ませる方法と、選択した行の欄2のデータを取り込む方法を教えて頂けると嬉しいです。ListBoxのプロパティのMultiColumnはTrueにしてあります。  欄1 欄2 北海道  550 青森県  138 宮城県  230 東京都  1360 現在は次のようにしてなんとか逃げておりますが、2次元配列でスマートに出来れば嬉しいです。 書き込み ListBox1.BeginUpdate() ListBox1.Items.Add("北海道 , 550") ListBox1.Items.Add("青森県 , 138") ListBox1.Items.Add("宮城県 , 230") ListBox1.Items.Add("東京都 , 1360") ListBox1.EndUpdate() 呼び出し Dim textArray = ListBox1.SelectedItem.ToString.Split(",")  Dim Jinko As Single = Single.Parse(textArray(1)) TextBox.Text = Jinko 宜しくお願い致します。 熊谷

  • C# listviewで指定した配列にあるデータで、TEXTBOXへ表

    C# listviewで指定した配列にあるデータで、TEXTBOXへ表示ついて 例 listviewに 1 2 3 4 5 6 7 8 A Aさん 50 B Bさん 40 C Cさん 60 D こういう感じで B行にある3列に40のデータを TEXTBOXへ表示したいのですが、どなたかご存知いましたらプログラムソース教えて戴けませんか? お願いいたします。

  • textboxの二次元配列で質問

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

  • VB Windowsアプリ TextBoxについて

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

  • 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

  • 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 -------------------------------------------------------------- 以上