0

私はC#Winformsアプリケーションを持っており、メインフォームを使用して他の方法で制御しています:

public Rel_Entitys RelForm1;
public Struct_Inc StructForm1;
public DataLoad DataLoadForm1;
public Asset_Inc AssetForm1;
public Estimates_Inc EstimatesForm1;
public Options OptionsForm1;

private void Form1_Load(object sender, EventArgs e)
{
    RelForm1 = new Rel_Entitys();
    StructForm1 = new Struct_Inc();
    DataLoadForm1 = new DataLoad();
    AssetForm1 = new Asset_Inc();
    OptionsForm1 = new Options();
    EstimatesForm1 = new Estimates_Inc();
}

そして、私はこの方法でそれらにアクセスします:

private void barButtonItem6_ItemClick(
                object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
    StructForm1.Show();
    this.Hide();
}

データベースからこのフォームにデータをロードするのはうまくいきますが、フィールドから値を取得しようとすると、null/空になります。すでに使用しようとしましthis.StructForm1.txt1.Textたが、何も返されません。私は何を間違っていますか?このフォーム宣言を使用して、フォームをより簡単に処理してメソッドを呼び出すことができますが、それが正しい方法であるかどうかはわかりません。

[アップデート]

私はそれが私の方法に関連する何かだと考え始めています。form_load でフィールドの値を設定し、メソッドから取得する場合

public void SaveEstimate() {...}

また空です。何か案は?

4

2 に答える 2

0

txt1呼び出すテキストボックスが Publicであることを確認してください。

テキストボックスを選択し、プロパティ ウィンドウに移動し、Modifiers を見つけて Public に設定します。

于 2013-09-05T13:41:17.093 に答える
0

フォームの複数のインスタンスを作成しているようです。簡単なチェックです。フィールドを静的にしてから、これらがまだ Null (空) かどうかを確認します。

public static Rel_Entitys RelForm1;
public static Struct_Inc StructForm1;
public static DataLoad DataLoadForm1;
public static Asset_Inc AssetForm1;
public static Estimates_Inc EstimatesForm1;
public static Options OptionsForm1;
于 2013-09-05T13:58:34.157 に答える