VB.net2008 設定画面の作成
こんにちは、プログラミングの勉強を行っているのですが。
少し、躓いてしまったのでこちらで質問させてください。
Form1 と Form2 という二つのフォームを用意して。Form1で使用している設定値クラスをForm2にコピーして設定変更を行った後リターンで返すということを考えています。
ですが、どうしてもうまく書けないため、ご助言ください。
-----------------------以下ソース-----------------
Public Class Form1
'XMLに設定保存
Private Sub SaveSetthing()
Dim wset as New Setting
'XMLserializerで書き込み
~~~~~~~~~~~~~~~~~~~
End sub
'設定読み込み
Private Sub LordSetthing()
'XMLserializerで読み込み
Dim lset as New Setthing
~~~~~~~~~~~~~~~~~~~
End sub
EndClass
Public Class Setthing
Public UserName as String
Public Age as Integer
~~~~~~~~~~~~~~~
Public Function Clone() as Setthing
Return DirectCast(MyBase.MemberwiseClone,Setthing)
End Function
End Class
----------------------------------------------
このときに、Form1のボタンを押したらForm2を開く動作で
-------------------------------------------------
Private sub ボタンクリック(Bybal*************)
Dim f as Form2 = New Form2(Setthing.Clone)
if f.ShowDialog = Windows.Forms.DialogResult.OK then
me.Setthing = f.GetValue
End if
End sub
-------------------------------------------------
↑ここで返り値を受けたいと考えています。
↓Form2構文
--------------------------------------------------
Public Class form2
Public sub New(ByVal Value as Setthing)
InitializeComponent()
Dim TempSetthing as Setthing = Value
End sub
'ここで、渡された設定値の表示と設定画面で変更された設定の読み込み
Public Function GetValue() As Setthing
Return TempSetthing
End function
End Class
--------------------------------------------------
と、大雑把に書き込みましたがこのような感じの処理を行いたいです。
ですが、私の理解が足りない為Form2内でTempSetthing内のデータの読み書きが行えません(宣言できません)
独学で作ったものですので、ここまでの流れがおかしなものになっている可能性もありますが。
「このような処理が行いたい!」というのは伝えれるかとは思います。
Form2内でTempSetthingの値を変更できるようなTextBox等を作成して。代入する形にしたいのですが。
ご教授お願いします・・・
Form2のGetValueでアクセスできるTempSetthingを Form2のクラスメンバーにしないといけませんよ
public Class Form2
Private TempSetthing as Setthing
'と宣言しておいて
Public New( byVal value as Setthing)
InitializeCompornents()
TempSetthing = value
End Sub
と初期設定します
GetValue側は今のままでいいでしょう
お礼
なるほど、初期設定してから受け取った値を引数として代入すればよかったのですね。 これで進めることが出来そうです。ありがとうございました^^