可以';我无法访问表单上的任何值

本文关键字:表单 访问表 任何值 访问 可以 | 更新日期: 2023-09-27 18:30:13

我有一个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();
}

将数据从数据库加载到此表单对我来说很好,但当我试图从任何字段获取任何值时,它们都是空的。我已经尝试过使用this.StructForm1.txt1.Text,但没有任何结果。我做错了什么?我使用这个表单声明来更容易地处理表单并调用您的方法,但我不确定这是正确的方法

[更新]

我开始认为这与我的方法有关。如果为form_load上的字段设置一个值,然后从方法中获取

public void SaveEstimate() {...}

它又空了。有什么想法吗?

可以';我无法访问表单上的任何值

看起来您正在创建多个表单实例。只是快速检查一下。使字段为静态字段,然后查看这些字段是否仍然为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;

确保调用txt1的文本框为Public。

选择您的文本框,转到属性窗口,找到Modifiers并将其设置为Public。