- PR -

ボタンを押して、新たな画面の作成

1
投稿者投稿内容
sakura
会議室デビュー日: 2008/11/12
投稿数: 5
投稿日時: 2008-11-21 14:36

Visual Basic 2008 Express Editionを使っています

Form1は、TextBoxとButton(新規製作)を配置しまして
Form2は、真ん中にLabelがあり、TextBoxに文字を入力してButtonを
押すと、Labelに文字を表示させるのは出来たのですが

Form1のTextBoxに文字を入力してButtonを押す度に、Form2をコピーして
Form3,Form4,Form5を自動的に作成して、各FormのLabelに表示させようと
したいのですが、やり方が全く解りません;;

この様な事は可能なんでしょうか?

色々検索して調べはしたのですが、見つかりませんでした

やり方を教えて貰えると幸いです 宜しくお願いします
Toshi
ベテラン
会議室デビュー日: 2007/09/18
投稿数: 68
お住まい・勤務地: 関東のどっか
投稿日時: 2008-11-21 15:06
こんにちわ。

まず、クラスとインスタンスについて勉強しておくといいかもしれません。

Form1やForm2はおそらくクラスですよね。
これは一種のテンプレートのようなものです。
クラスの情報を基にして実態(インスタンス)を生成します。
※すっごいぼやかしてます。

コード:
// Form1クラスのインスタンスを生成
Dim form1 as Form1 = New Form1
Dim form2 as Form1 = New Form1
// ただし、form1とform2の実態は別物



で、
引用:

Form1のTextBoxに文字を入力してButtonを押す度に、Form2をコピーして
Form3,Form4,Form5を自動的に作成して、各FormのLabelに表示させようと
したいのですが、やり方が全く解りません;;



こちらですが、イメージは次のようなコードなんでしょうか。
コード:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim form As Form2 = New Form2
        form.LabelText = Me.TextBox.Text
        form.Show()
    End Sub



押すたびに、Form2を基にした画面が表示され、かつForm1で入力した文字がラベルに表示される感じです。

以上、参考になれば。はずしていたらごめんなさい。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-11-21 15:07
引用:

sakuraさんの書き込み (2008-11-21 14:36) より:

Form1のTextBoxに文字を入力してButtonを押す度に、Form2をコピーして
Form3,Form4,Form5を自動的に作成して、各FormのLabelに表示させようと
したいのですが、やり方が全く解りません;;
この様な事は可能なんでしょうか?


通常 Form を扱うには自分でインスタンスを生成しますから、普通にやっていればそうなるハズですが、sakura さんは My.Forms の機能 (Form の既定のインスタンス) を使っているのではないでしょうか? Form2 という型の Form があるとして "Form2.Show" などと書いているのであれば、それは 「Form の既定のインスタンス」 を使っています。

想像上の回答で申し訳ないですが、

コード:

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)...
        Dim form2 As New Form2()
        form2.SetLabelText(Me.TextBox1.Text) 'Form2 の Label.Text に設定するためのメソッド
        form2.Show(Me)
    End Sub


上記のように Button1.Click イベントで毎回新しいインスタンスを生成してやれば良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
sakura
会議室デビュー日: 2008/11/12
投稿数: 5
投稿日時: 2008-11-21 16:44
Toshi様、じゃんぬねっと様 ご返答まことにありがとうございます。

教えて貰いました方法を実行した所、表示する事が出来ました


お恥ずかしい事ながら、私はVB始めて間もない上に結構 歳がいってるので
なかなか 頭の中に入らなくて四苦八苦しております><

また 解らない事がありましたら お聞きするかもしれませんが 宜しくお願いします
1

スキルアップ/キャリアアップ(JOB@IT)