トップ回答者
テキストファイルからcomboboxに読み込み?&ラベルに出力

質問
-
こんばんは
VB2008です
フォーム1にcombobox1とボタン1(検索)、ボタン2(登録)があります。
登録ボタンでフォーム3を開きます。
テキストボックスが数個ありデータを入力します。
入力が終わるとVBTest.txtに","区切りで追加書き込みをします。(品番,型番,材料,***,****,****,・・・・)
わからないのは
フォーム1をloadした時に、VBTest.txtを読み込みcombobox1に品番を表示させて
comboboxを選択し検索ボタンをおすとフォーム2の各ラベルに表示させたいのですが
Dim Reader As New IO.StreamReader("C:\VBTest.txt")
でファイルを読み込むのがわかったのですが1行を分解して配列にいれるのがわかりません
回答
-
akisan さんからの引用 こんばんは
VB2008です
フォーム1にcombobox1とボタン1(検索)、ボタン2(登録)があります。
登録ボタンでフォーム3を開きます。
テキストボックスが数個ありデータを入力します。
入力が終わるとVBTest.txtに","区切りで追加書き込みをします。(品番,型番,材料,***,****,****,・・・・)
わからないのは
フォーム1をloadした時に、VBTest.txtを読み込みcombobox1に品番を表示させて
comboboxを選択し検索ボタンをおすとフォーム2の各ラベルに表示させたいのですが
Dim Reader As New IO.StreamReader("C:\VBTest.txt")
でファイルを読み込むのがわかったのですが1行を分解して配列にいれるのがわかりません
Split関数かStringクラスのSplitメソッドが使えます。
サンプルとしては、以下のようになります。
Code SnippetDim Reader As New IO.StreamReader("C:\VBTest.txt")
Dim wk_str As String
wk_str = Reader.ReadLine
Dim tbl() As String
tbl = wk_str.Split(",") ' StringクラスのSplitメソッドを使った場合。
'tbl = Split(wk_str, ",") ' Split関数を使った場合また、分割された件数について、上記の例であれば以下のコードで取得できます。
Code Snippettbl.Count()
すべての返信
-
akisan さんからの引用 こんばんは
VB2008です
フォーム1にcombobox1とボタン1(検索)、ボタン2(登録)があります。
登録ボタンでフォーム3を開きます。
テキストボックスが数個ありデータを入力します。
入力が終わるとVBTest.txtに","区切りで追加書き込みをします。(品番,型番,材料,***,****,****,・・・・)
わからないのは
フォーム1をloadした時に、VBTest.txtを読み込みcombobox1に品番を表示させて
comboboxを選択し検索ボタンをおすとフォーム2の各ラベルに表示させたいのですが
Dim Reader As New IO.StreamReader("C:\VBTest.txt")
でファイルを読み込むのがわかったのですが1行を分解して配列にいれるのがわかりません
Split関数かStringクラスのSplitメソッドが使えます。
サンプルとしては、以下のようになります。
Code SnippetDim Reader As New IO.StreamReader("C:\VBTest.txt")
Dim wk_str As String
wk_str = Reader.ReadLine
Dim tbl() As String
tbl = wk_str.Split(",") ' StringクラスのSplitメソッドを使った場合。
'tbl = Split(wk_str, ",") ' Split関数を使った場合また、分割された件数について、上記の例であれば以下のコードで取得できます。
Code Snippettbl.Count() -
MSDNライブラリはご存じでしょうか? ご存じなければ、まずここで調べることを覚えて下さい。どんなに上級者になっても、ここを見なくなることはまずありません。
ComboBox.ObjectCollection.Add メソッド
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.combobox.objectcollection.add(VS.80).aspxエラーの意味は、Add(item As Object)というメソッドがあり、このitemという引数に何も与えていないということです。
-
こんにちは
前回→Handles MyBase.Loadの記載を何かの拍子に削除したみたいでエラーでした。
一応下記でcomboboxには品番を表示することができたのですが
comboboxを選択してその対のデータをフォーム2のラベルに表示したいのですがどうすればいいですか?
Private Items() As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Reader As New IO.StreamReader("C:\VBTest.txt")
Dim Line As String = Reader.ReadLine
Dim tb As String
Do Until IsNothing(Line)
Items = Line.Split(",") '一行を, (カンマ)で区切って項目ごとに分解
tb = Items(0)
ComboBox1.Items.Add(tb)
Line = Reader.ReadLine
LoopEnd Sub
-
外池と申します。えっとですね、この手の質問は、芋づる式に延々続いてしまって、プログラムの完成までに非常に時間がかかってしまうと思います。
ですので、まずは、ご自分でドキュメントを調べてください。
で、基本的なことですが、Formの概観(色やら大きさ、あと、ラベルに何を表示するか、アイコンに何を表示するか)の多くの設定は「プロパティー」を設定する(プロパティーに値を代入する)ことでお好きなように変えられます。
ドキュメントでFormクラスについて調べてみてください。ちなみに、ラベルと仰っているものは、FormのTextプロパティーのことだと思います。
-
こんにちは
以下でできました。
そんなに難しくなかったですね
すみません
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frm2 As Form2 = Form2
Dim Reader As New IO.StreamReader("C:\VBTest.txt")
Dim Line As String = Reader.ReadLine
Dim PCode As String
Form2.Text = ComboBox1.SelectedIndex
frm2.Show()
Do Until IsNothing(Line)
Items = Line.Split(",")
PCode = Items(0)
If PCode = ComboBox1.SelectedItem Then
frm2.Label12.Text = Items(0)
frm2.Label13.Text = Items(1)
frm2.Label14.Text = Items(2)
frm2.Label15.Text = Items(3)
frm2.Label16.Text = Items(4)
frm2.Label17.Text = Items(5)
frm2.Label18.Text = Items(6)
frm2.Label19.Text = Items(7)
frm2.Label20.Text = Items(8)
frm2.Label21.Text = Items(9)
frm2.Label22.Text = Items(10)
frm2.TextBox1.Text = Items(11)
frm2.PictureBox1.Image = Image.FromFile("C:\Documents and Settings\....\My Documents\My Pictures\080125_0919~01.jpg")
Exit Sub
End If '一行を, (カンマ)で区切って項目ごとに分解Line = Reader.ReadLine
Loop
Reader.Close()
End Subただ、画像表示しようとしたらwindowsのusernameが必要みたいなので今度はその辺調べます。
ありがとう