まず、フォームクラスはなぜですか?別のモジュールのフォームオブジェクトを使用して、どのようにしたらいいですか?
しかし今、主な質問に。
私が持っている:フォームで
Form1.vb
Module1.vb
テキストボックスがあり、プログレスバー、ラベルなど
私はこれらのプロパティを変更できるようにしたいです私のフォーム上のオブジェクトはmodule1からですが、私はそれらにアクセスすることはできません。
フォーム上のこれらのものはオブジェクトです。彼らは特定の範囲を持っていますか?どのように変更できますか?
私のソリューションエクスプローラによれば、これらのことはクラスのプロパティですか?
しかし、私はプログラムを実行すると、フォームが現れ?? form1オブジェクトが作成されるように、フォームクラスをインスタンス化する必要はありませんか?
ないことが重要ということが、ここではModule1の
Sub WriteObjectsToCSV()
Dim props As PropertyInfo() = MyCompanies(1).GetType().GetProperties()
Dim sw As StreamWriter =
My.Computer.FileSystem.OpenTextFileWriter(SaveAs, False)
Dim csv As New CsvHelper.CsvWriter(sw)
csv.WriteHeader(Of Company)()
csv.NextRecord()
For Each company In MyCompanies
'>>> want to write to my text box and change my progress bar here <<<
For Each prop In props
csv.WriteField(prop.GetValue(company))
Next
csv.NextRecord()
Next
End Sub
フォームはクラスであるモジュールでこれを書くことができ
外のテキストにアクセスできるようにフォームでプロパティを宣言することができます世紀とは、オブジェクト指向の世界です。画像内のすべてがオブジェクトではありません - いくつかはメソッドです。 'MyCompanies(1)'が何であるかは分かりませんが、モジュールメソッドに渡すことができます。 'MyCompanies(1)'が何であるかによって、そのコードは自家製シリアライザに見えます。利用可能な多くのシリアライズ方法を調べることができます。 – Plutonix
フォーム*は*インスタンス化されています - VB Appフレームワークがそれを行います。どのフォームがプロジェクトプロパティの 'Startup Object'として設定されているかによって異なります。 'Sub Main'のコードから' Application.Run(New Form1) 'として実行することもできます。 'MyCompanies'がデータである場合、そのメソッドに渡すのではなく、メソッドをデータのある場所(フォーム)に移動することもできます。既存のシリアライザは、調査する価値があると掘り下げます。将来、1つの質問につき1つの質問をしようとする - これはチュートリアルを求める境界線です – Plutonix