C# 值未正确传递到其他窗体

C# 值未正确传递到其他窗体,c#,winforms,arguments,C#,Winforms,Arguments,我的程序不会正确地将值从一种形式传递到另一种形式,当它将字符串传递到下一种形式时,它总是显示为null,表示 以下是我在相关领域的代码: public partial class openingForm : Form { public string databaseselected; public openingForm() { InitializeComponent(); } public void button2_Click(obje

我的程序不会正确地将值从一种形式传递到另一种形式,当它将字符串传递到下一种形式时,它总是显示为null,表示

以下是我在相关领域的代码:

public partial class openingForm : Form
{
    public string databaseselected;
    public openingForm()
    {
        InitializeComponent();
    }

    public void button2_Click(object sender, EventArgs e)
    {
        openFileDialog1.Filter = "Event Control Database Files (.sdf)|*.sdf";
        openFileDialog1.FilterIndex = 1;
        openFileDialog1.ShowDialog();
        databaseselected = openFileDialog1.FileName;
        loginForm login1 = new loginForm();
        this.Hide();
        login1.ShowDialog();

    }

    private void button1_Click(object sender, EventArgs e)
    {
        string name = textBox1.Text.Trim();
        if (!File.Exists(textBox1.Text.Trim()+".sdf"))
        {
            string connectionString = "DataSource= "+name+".sdf";
            databaseselected = connectionString;**
            SqlCeEngine en = new SqlCeEngine(connectionString);
            en.CreateDatabase();
然后一些表格创建。。。。。。然后:

            loginForm login = new loginForm();
            login.ShowDialog();
            this.Close();
到目前为止,我们有一个变量,它在开始时声明,并根据单击的按钮初始化为不同的值。这是下一张表格:

public partial class loginForm : Form
{
    openingForm op = new openingForm();
    public string userLoggedIn;
    public loginForm()
    {
        InitializeComponent();
    }

    private void loginForm_Load(object sender, EventArgs e)
    {

        AddValueToLogs();

    }

    private string myMethod(string user, string pass)
    {
        string selection = "Select * from Login where userName = @userName and Hash=@hashResult";
        using (var myConnection = new SqlCeConnection(**op.databaseselected**))
        using (var command = new SqlCeCommand(selection, myConnection))
        {
            command.Parameters.Add("@username", SqlDbType.NVarChar, 20).Value = userNameBox.Text;
            command.Parameters.Add("@hashResult", SqlDbType.NVarChar, 50).Value = hashResult;

有人能告诉我为什么DatabaseSelected值没有传递到loginForm吗?

只需将连接字符串插入到
loginForm

private string _cString;
public loginForm(string cString)
{
    _cString = cString;
}
随后:

new SqlCeConnection(_cString))
因此,当您启动
loginForm
时,请执行以下操作:

... new loginForm(databaseselected);

对不起,我不明白,所有这些命令都去哪里??它说了一些关于班级信息的事情unavailable@tonyb,我将向您展示当前代码的修改片段。我修改了
loginForm
的构造函数,并在
loginForm
中定义了一个新字段。此外,我修改了
newsqlceconnection
调用,以利用
loginForm
中的新字段。最后,我从
openingForm
修改了对
newloginform
的调用。那么,我会在其他需要特定字符串的表单上声明相同的字符串吗?