将值传递给另一种形式的c#

本文关键字:另一种 值传 | 更新日期: 2023-09-27 18:16:50

如何传递txtFirstName的值。文本到另一种形式?还有其他的输入。(我粘贴了我正在处理的两个表格)。请帮帮我。还是使用多维数组更好?我在做一个类似于账户登录注册程序,在那里你可以查看你输入的信息与最多5个帐户的配置文件。请帮助。谢谢。

public partial class frmInfo : Form
{
    public frmInfo()
    {
        InitializeComponent();
    }
    private void btnConfirm_Click(object sender, EventArgs e)
    {
        if (txtFirstName.Text == String.Empty)
        {
            errorProvider1.SetError(txtFirstName, "Your First Name is important.");
        }
        else
        {
            errorProvider1.Clear();
        }
        if (txtLastName.Text == String.Empty)
        {
            errorProvider2.SetError(txtLastName, "Your Last Name is important.");
        }
        else
        {
            errorProvider2.Clear();
        }
        if (txtFirstName.Text != String.Empty && txtLastName.Text != String.Empty)
        {
            frmProfile profile = new frmProfile();
            profile.Show();
            this.Hide();
        }
    }
}

//Other form
public partial class frmProfile : Form
{
    public frmProfile()
    {
        InitializeComponent();
    }
    private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e)
    {
        frmChangePassword changepass = new frmChangePassword();
        changepass.Show();
        this.Hide();
    }
    private void logOutToolStripMenuItem_Click(object sender, EventArgs e)
    {
        frmMain logout = new frmMain();
        logout.Show();
        this.Hide();
    }
}

将值传递给另一种形式的c#

你正在使用一种面向对象的语言,所以为什么不尝试使用类并传递这个类的实例呢?

首先用相关属性定义你的类

public class Profile
{
    public string FirstName {get; set;}
    public string LastName {get; set;}
    .... other properties will follow as you like...
}

现在在第一个表单上的按钮的click事件中

private void btnConfirm_Click(object sender, EventArgs e)
{
    Profile pf = new Profile();
    if (txtFirstName.Text.Trim() == String.Empty)
    {
        errorProvider1.SetError(txtFirstName, "Your First Name is important.");
        return; 
    }
    else
    {
        errorProvider1.Clear();
        pf.FirstName = txtFirstName.Text;
    }
    .......
    // Pass your Profile class instance to the constructor of the frmProfile
    frmProfile profile = new frmProfile(pf);
    profile.Show();
    this.Hide();
}

现在在frmProfile类中使用传入的实例

public partial class frmProfile : Form
{
    public frmProfile(Profile pf)
    {
        InitializeComponent();
        txtFirstName.Text = pf.FirstName;
        .....
    }
    .....
}

通过这种方式,您可以只传递一个包含所有数据的变量,而无需将每个单独的文本框传递给frmProfile表单

你可以做

frmProfile profile = new frmProfile();
profile.txtFullName.Text = String.Format("{0} {1}",  
                                         txtFirstName.Text, 
                                         txtLastName.Text);
profile.Show();

您可以向frmProfile的构造函数添加两个参数。然后,在构造表单的新实例时,将文本框的值传递给表单。

构造函数:

public frmProfile(string Firstname, string Lastname) {
    // Do something with Firstname and Lastname
    InitializeComponent();
}

然后在btnConfirm_Click函数中:

    if (txtFirstName.Text != String.Empty && txtLastName.Text != String.Empty) {
        frmProfile profile = new frmProfile(txtFirstName.Text, txtLastName.Text);
        profile.Show();
        this.Hide();
    }