将表格1中的数据带到其他表格中

时间:2013-12-29 06:50:06

标签: c# winforms forms

我尝试了

中的方法

Getting values from two or more forms C# Sharing a variable between two winforms Get value from parentformpassing username to form but username returns null c#

但我无法让我的工作,因为我会得到一些随机参数错误。

the two forms 从图片中,我只想将登录表单上的用户名放入用户表单上的label1。

但也可以在以后使用其他表格。

有人可以帮忙吗?

登录表格代码:

public partial class Login : Form
    {
        UserForm _userform = new UserForm();
        Admin _Adminform = new Admin();

        public Login()
        {
            InitializeComponent();
        }

        private void loginscs_Click(object sender, EventArgs e)
        {
            try
            {
                string userNameText = txtUser.Text;
                string passwordText = txtPass.Text;
                string isAdmin = "yes";
                string isNotAdmin = "no";
                if (!(string.IsNullOrEmpty(txtUser.Text)) && !(string.IsNullOrEmpty(txtPass.Text)))
                {
                    SqlConnection SCScon = new SqlConnection();
                    SCScon.ConnectionString = "Data Source=PEWPEWDIEPIE\\SQLEXPRESS;Initial Catalog=master;Integrated Security=True";
                    SqlCommand cmd = new SqlCommand("SELECT ISNULL(SCSID, '') AS SCSID, ISNULL(SCSPass,'') AS SCSPass, ISNULL(isAdmin,'') AS isAdmin FROM SCSID WHERE SCSID='" + txtUser.Text + "' and SCSPass='" + txtPass.Text + "'", SCScon);
                    SCScon.Open();
                    SqlDataReader dr = cmd.ExecuteReader();
                    if (dr.Read())
                    {
                        if (this.CompareStrings(dr["SCSID"].ToString(), txtUser.Text) &&
                            this.CompareStrings(dr["SCSPass"].ToString(), txtPass.Text) &&
                            this.CompareStrings(dr["isAdmin"].ToString(), isAdmin))
                        {
                            MessageBox.Show("Hello " + txtUser.Text, "Admin", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _Adminform.Show();
                            this.Hide();
                        }
                        else if (this.CompareStrings(dr["SCSID"].ToString(), txtUser.Text) &&
                            this.CompareStrings(dr["SCSPass"].ToString(), txtPass.Text) &&
                            this.CompareStrings(dr["isAdmin"].ToString(), isNotAdmin))
                        {
                            MessageBox.Show("Welcome " + txtUser.Text, "User");
                            _userform.Show();
                            this.Hide();
                        }
                    }
                    else
                    {
                        MessageBox.Show("Wrong ID/Pass");
                    }
                    SCScon.Close();
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show("error2" + ex);
            }
        }

        private void Login_Load(object sender, EventArgs e)
        {

        }

        private bool CompareStrings(string string1, string string2)
        {
            return String.Compare(string1, string2, true, System.Globalization.CultureInfo.InvariantCulture) == 0 ? true : false;
        }
    }

===========================

在这里,我试过这个,但是这个没有用。

that thing

3 个答案:

答案 0 :(得分:0)

为第二个表单创建一个构造函数并在其中创建(调用new Form2(...)) - 将参数作为参数发送给用户名和/或密码。

答案 1 :(得分:0)

您可以添加获取参数的构造函数给UserForm,并为构造函数中的某个对象提供该对象。

您还可以在Userform中添加getter / setter并更新要传递的信息。

答案 2 :(得分:0)

例如,您可以简单地使用属性:

<强>窗体2:

public string UserText { get; set;}

...

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "")
    {
        MessageBox.Show("Please enter keyword to search");
    }
    else 
    {
        UserText = textBox1.Text; // set the Text
    }

<强> Form1中:

private void button5_Click(object sender, EventArgs e)
{            
    Form2 form2 = new Form2();
    form2.ShowDialog();   //open form2-search form  

    string text = from2.UserText; get the Text

    ....

This Answer is stated by Dominic Kexel 希望这个帮助