ここから本文です

VB.NET超初心者です。 恐れ入りますがご教授願います。 VisualStadioにてフォ...

アバター

ID非公開さん

2019/3/520:53:31

VB.NET超初心者です。
恐れ入りますがご教授願います。

VisualStadioにてフォーム1とフォーム2を作成。

フォーム1にテキストボックスとコマンドボタンを配置。

フォーム1のボタンを押すとフォーム1のテキストボックスの値に応じてフォーム2にテキストボックスを生成するというものを作ろうとしていますが、
Dim k = Integer.Parse(TextBox1.Text)
「System.FormatException: '入力文字列の形式が正しくありません。'」と出てきてしまいうまくできません。

下記に全体のコードを載せます。

----------------------------------------------------------------

Public Class Form1
Private txt() As System.Windows.Forms.TextBox
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click


Dim k = Integer.Parse(TextBox1.Text)


Me.txt = New System.Windows.Forms.TextBox(k) {}

'ボタンコントロールのインスタンス作成し、プロパティを設定する
Me.SuspendLayout()
Dim i As Integer
For i = 0 To k
'インスタンス作成
txt(i) = New System.Windows.Forms.TextBox
'プロパティ設定
txt(i).Name = "Button" + i.ToString()
txt(i).Text = i.ToString()
txt(i).Size = New Size(30, 30)
txt(i).Location = New Point(i * 30, 10)

Next i

'フォームにコントロールを追加
Form2.Show()
Form2.Controls.AddRange(txt)
Form2.ResumeLayout(False)

End Sub


End Class
----------------------------------------------------------------

お忙しいところ恐れ入りますがご教授よろしくお願い申し上げます。

以上です。

閲覧数:
41
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kak********さん

2019/3/601:40:55

テキストボックスに空文字列が入力されていませんか?

また、
Dim k As Integer = Integer.Parse(TextBox1.Text)
ではどうでしょうか?

  • アバター

    質問者

    ID非公開さん

    2019/3/612:13:27

    お返事ありがとうございます。

    Dim k As Integer = Integer.Parse(TextBox1.Text)

    に直したところエラーは解決しました!!ありがとうございました!!

    エラーは解決しましたがフォーム2にテキストボックスが1個も表示されません(´;ω;`)コマンドの受け側にもなにかしらコードが無いと駄目ですか?

    ご指導よろしくお願いします。

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

アバター

質問した人からのコメント

2019/3/7 19:47:35

お世話になります。

フォームを新しく作り直し、同じ文を載せたらうまく起動しました!!!

いろいろとご指導ありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

hyp********さん

2019/3/617:05:32

Dim k As Integer = Integer.Parse(TextBox1.Text)
を追加して確認した所表示できますよ。
※txt(i).Visible = trueを追加してもしなくても。

プログラムを眺めてどこか変えてませんか?


後はShowDialog()ではなくShow()メソッドなのでその後もプログラムが走りますが、コントロールを追加した後Show()メソッドを行うとどうなりますか?

Form2.Controls.AddRange(txt)
Form2.ResumeLayout(False)
Form2.Show()

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる