質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

3282閲覧

Form間で複数の変数を渡したい

Umeda2019

総合スコア14

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2020/07/06 06:56

visual studio 2019
windows10

Form1の二つのTextBoxの値をForm2の二つのTextBoxへ変数を渡したいのです。
参考になるサイトを見つけ、必要事項を変更してみました。

Form1が、

Private

1 Dim f As Form2 = New Form2(社員番号.Text, 社員名.Text) '値を渡す 2 3 'モーダル開き、戻り値を受け取る 4 If f.ShowDialog = DialogResult.OK Then 5 '値を受け取る 6 社員番号.Text = f.GetValue 7 社員名.Text = f.GetValue 8 End If 9 f.Dispose() 10 11 End Sub

Form2が、

Public

1 Friend GetValue As String 2 Private 社員番号, 社員名 As Object 3 4 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 5 6 'テキストボックスを入力不可にするために、EnableプロパティをFalseに設定します。 7 社員番号2.Enabled = False 8 社員名2.Enabled = False 9 10 End Sub 11 12 Public Sub New(ByVal Value As String, text As String) 13 14 InitializeComponent() 15 16 社員番号2.Text = Value 17 社員名2.Text = Value 18 End Sub 19 20End Class

ところが、Form2の二つのTextBoxにはForm1の「社員番号.text」がそれぞれ入ってしまいます。
Forms2の「社員名2.text」にForm1の「社員名.text」を入れるにはどのようにすればよろしいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こうじゃないですか。

diff

1 Public Sub New(ByVal Value As String, text As String) 2 3 InitializeComponent() 4 5 社員番号2.Text = Value 6- 社員名2.Text = Value 7+ 社員名2.Text = text 8 End Sub

Valueとかtextという中身のわからない引数名にしているから混乱するんだと思います。
もうちょっと具体的な命名にしましょう。

あと

VB.NET

1 If f.ShowDialog = DialogResult.OK Then 2 '値を受け取る 3 社員番号.Text = f.GetValue 4 社員名.Text = f.GetValue 5 End If

この部分もおかしいと思います。
GetValueが何を返すのか書かれていないんでわかりませんが、同じ値をセットしてます。

投稿2020/07/06 07:10

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Umeda2019

2020/07/06 07:46

回答ありがとうございます。 ご指摘いただいた内、上段の部分を下記の通り修正しました。 Public Sub New(ByVal 社員番号 As String, 社員名 As String) 'この呼び出しは Windows フォーム デザイナで必要です。 InitializeComponent() 社員番号2.Text = 社員番号 社員名2.Text = 社員名 End Sub 下段については変更していませんが、これで狙い通りの動きとなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問