C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■87756 / )  別フォームにデータを渡したい
□投稿者/ いまそかり (1回)-(2018/06/28(Thu) 11:49:57)

分類:[.NET 全般] 

いつもお世話になっております。
VB.NET初心者です。

Form1でDBから取得したデータを、Form2にあるコンボボックスに入れたいのですが、
調べるうちにどうもよく分からなくなってきたため、分かる方いましたら是非ご教授をお願いします。
その際、サンプルコードか参考となるページなどがあれば、よければ教えていただけますとありがたいです。



<開発環境>
vb2015、.NET Framework3.0

<ソースコード>
【関数の呼び出し元Form1】

Public class Form1 

	'xmlからデータを取得
	Function xmlGet(Byval a As String,Byval b As String)

		'xmlへのパスやLoadなど(省略)

		 	  ・
			  ・
			  ・
			  ・

	End Function


	'フォーム内での動き
	Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

		'DBに接続するための情報をxmlから取得(※1)
		Dim id As String = xmlGet("a","b_id") 
		Dim pass As String = xmlGet("a","b_pass")

 
		'接続文字列の指定やSQL文の設定、接続、DBからレコード取得(省略)
			
					 ・
					 ・
					 ・
					 ・

	End Sub


	'ボタンクリックイベント(Form2が開く)
	Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        
		Dim frm As Form2
        	frm = New Form2
        	frm.Show()  

	End Sub

End class	



【Function関数を使用したいForm2】

Public Class Form2

	'ここでDBから取得した値をコンボボックスに入れる
	Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
		
		'コンボボックスにDB内のテーブルを連結
            	'コンボボックスに表示したいデータ
   	        '実際に扱うデータをSelectValueで取得する
      	    	
	End Sub

End class


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


【質問】

@Form1_LoadをprivateのままでForm2で取得し、使用したい

実行:Form2で
	
	'Form1のインスタンス化
	Dim cls As New Form1
	cls.Form1_Load() 'エラー発生

エラー内容:Form1_Loadはprivateのためアクセスできない



AForm2でForm1_Loadだけを取得した場合、(※1)は正常に動作するのか

(以下では、正常に動作しなかった場合を考えました)
実行:Form2で

	'Form1のインスタンス化
	Dim cls As New Form1
	cls.xmlGet() 'エラー発生

エラー内容:変数aとbに対して引数が指定されていない
		→ aとbには引数を1つではなく複数入れたいため、配列を使用する必要がある?


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


素人が作成しているため、細かい間違いが多いと思います。何卒ご容赦下さい。
ですが、大きな間違いに関してはご指摘くだされば幸いです。
以上、よろしくお願いします。

返信 編集キー/


管理者用

- Child Tree -