3

複数のフォームを持つ VS 2012 の vb.net プロジェクトに取り組んでいます。たとえば、ListView を持つ Form1 があり、Form1 から From2 を呼び出します。Form2 の Load イベントに次のコードを追加します。

Form1.ListViewTest.Items.Add("test")

ビジュアル スタジオはエラーをスローしませんが、実際には Form1 の ListView コントロールでは何も起こりません。Modifiers を Friend から public に変更しようとしましたが、成功しませんでした。私が見逃しているものは他にありますか?

4

2 に答える 2

0

これは非常に簡単です。ダイアログ ウィンドウから任意のコントロールを参照する場合、これを行うには 2 つの方法があります。最初の方法は以下のとおりです。

パートI

1 - 修飾子にアクセスするコントロールが Public に設定されていることを確認します

2 - 次に、ダイアログ ウィンドウで次の操作を行います。

Dim f as Form1 ' 別の新しい新しいバージョンを使用したくないため、新しいバージョンを使用する必要はありません。既存のものを使用したいので、フォーム名のみを参照として使用します

3 - 次のようにします。

f = Ctype(Me.Owner, Form1) ' すべてのフォーム名が一意であるため、フォーム コレクションを循環する必要はありません

f.LightGridControl.Text = "この情報"

パート II

メインウィンドウの宣言セクションでプライベート変数を作成できます

Private _mainWin as form1 ' これは同じウィンドウの一意の名前です

次に、作成します

Public Property MainForm as Form1 Get Return _mainWin End Get Set (ByRef 値を Form1 として) _mainForm = 値 End Set End if

ボタン クリック イベントでは、次のように記述できます。

Dim f as New Form2

_mainForm = 私

f.DialogBox(私)

次に、form1 (MainWindow) のコントロールにアクセスする form2 のイベントでは、次のようにします。

薄暗い f を form1 として

f.MainForm.TextBox1.Text = "私の情報"

それはとても簡単です!幸運を祈ります。どうだったか教えてください。

ごきげんよう!!これが誰かを助けることを願っています!!

于 2013-11-26T10:49:25.853 に答える