2016-05-16 7 views
0

注:同様の質問がhereを見つけることができます。私は、複数のユーザーコントロールから値を渡すことができますどのように渡す値

?上記のリンクの質問は答えを提供しますが、私の状況では答えが非常に面倒であり、値渡しに遅延があります。 (私は、UserControl1とUserControl2から複数回、UserControl2でUserControl2の値を渡すためにテキストボックスやラベルの変更をコミットする必要があります)

いずれにしても、それぞれに複数のUserControlがあるため多くのテキストボックス、ラベル、およびコンボボックスが必要な場合は、渡すことを希望する値を持つコントロールごとに個別のSubルーチンとEventHandlerを作成する必要はありません。

良い方法がありますか?私はどのように私は、コードの最低額と似た何かを達成することができ、

'In UserControl10 
Dim UserControl1 As New UserControl1 
Dim UserControl2 As New UserControl2 
Dim UserControl3 As New UserControl3 

UC10Label1.Text = UserControl1.Label1.Text 
UC10TextBox1.Value = UserControl2.TextBox1.Value 
UC10ComboBox1.Text = UserControl3.ComboBox1.SelectedItem 

は明らかに上記のコードは、私が想像ように動作しません

...何かのように考えていましたか?

編集:私は「ビュー」として使用する複数のカスタムユーザーコントロールを持っています。各UserControlには、ラベル、テキストボックス、&のコンボボックスがあります。私は、トリガされたイベントでパネルにUserControl(1-9)を表示するPanel1を持っています。各UserControlは一度に1つずつ表示され、イベントに左右されます。各UserControl(1-9)からUserControl10のラベル、テキストボックス、またはコンボボックスなどに値を渡すことができるようにしたい。

+2

「複数のユーザーコントロールから値を渡すにはどうすればよいですか?その質問は意味がありません。あなたは実際に何をしたいのですか?あなたが達成しようとしていることを正確かつ明確に説明してください。ユーザコントロールは単なるコントロールであるため、他のコントロールと同様に扱われることに注意してください。ユーザーコントロールから複数のデータ項目を取得する魔法の方法はありません。 – jmcilhinney

+0

@jmcilhinneyご迷惑をおかけして申し訳ありません。私は私の質問を編集しました。うまくいけば私は説明の不足のために謝罪しない場合は明確になります..(新vb) – NuWin

答えて

1

私は最後の3行がSubにないと推測しています。フォームが表示される前に実行しているため、おそらく動作していない可能性があります。

、あなたのプログラムで自動的に更新する場合は、サブに入れなければならないが、彼らは更新している間、フォームのレイアウトを中断し、コードが終了したときのレイアウトを再開する。あなたはこれらのコントロールを更新したいときに応じて、この

Private Sub UpdateUserControls() 
    Me.SuspendLayout() 
    UC10Label1.Text = UserControl1.Label1.Text 
    UC10TextBox1.Value = UserControl2.TextBox1.Value 
    UC10ComboBox1.Text = UserControl3.ComboBox1.SelectedItem 
    Me.ResumeLayout() 
End Sub 

と同じように、あなたはそれをフォームがフォームの.Shownイベントで上記Subを配置することによって、表示されるたびに行うことができます。

それとも、Timerの.tickイベントに置くことで、自動的にしょっちゅうそれを行うことができます。

またはあなたのコードのどこかでサブを置くことによって、あなたのプログラム内の特定の時点でそれらを更新することを選択することができます。

+0

あなたの答えをありがとう。私はあなたの答えに基づいて同様のものを組み込むことができ、それを働かせました。 – NuWin