从C#中的属性获取值

时间:2015-09-07 16:31:21

标签: c# winforms

我是C#的新手,我有以下问题:

DBOps.cs:

class DBOps()
{
internal static void Update(DataGridView dataGridView1)
        {
            if (dataGridView1.SelectedRows.Count != 0)
            {
                var user = new User();
                user.Id = (int) dataGridView1.SelectedRows[0].Cells[0].Value;
                user.Username = (string) dataGridView1.SelectedRows[0].Cells[1].Value;
                user.FirstName = (string) dataGridView1.SelectedRows[0].Cells[2].Value;
                user.LastName = (string) dataGridView1.SelectedRows[0].Cells[3].Value;
                user.Email = (string) dataGridView1.SelectedRows[0].Cells[4].Value;
                user.Password = (string) dataGridView1.SelectedRows[0].Cells[5].Value;

                var updateForm = new UpdateForm(user);
                var result = updateForm.ShowDialog();

                if (result == DialogResult.OK)
                {

                }
                else if (result == DialogResult.Cancel)
                {

                }
            }
        }
}

User.cs:

class User
    {
        public int Id { get; set; }
        public string Username { get; set; }    
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
    }

UpdateForm.cs:

public partial class UpdateForm : Form
    {
        public UpdateForm(User user)
        {
            InitializeComponent();

            txtId.Text = user.Id.ToString();
            txtUser.Text = user.Username;
            txtFName.Text = user.FirstName;
            txtLName.Text = user.LastName;
            txtEmail.Text = user.Email;
            txtPass.Text = user.Password;
        }
//code
}

DBOps类中的值存储正确,我已经检查过了。现在我想使用User.cs中的值设置UpdateForm中的TextBox。

3 个答案:

答案 0 :(得分:1)

您只需获取对User类的引用,然后通过其属性getter访问它们。例如:

function putDatainthis(arr) {
    var data = [3,4,6,2,6,1];    
    var concat_array = data.concat(arr);
}

答案 1 :(得分:1)

我不知道你想要做什么,只是将一个对象传递给另一个类,你可以使用构造函数方法。

public class SecondObject
{
    public SecondObject(User theuser)
    {
        textbox1.Text = theuser.Id
        textbox2.text = theuser.Username
        // ...
    }
}

要使用你的第二堂课,请执行以下操作:

var user = new User();

user.Id = (int) dataGridView1.SelectedRows[0].Cells[0].Value;
user.Username = (string) dataGridView1.SelectedRows[0].Cells[1].Value;
user.FirstName = (string) dataGridView1.SelectedRows[0].Cells[2].Value;
user.LastName = (string) dataGridView1.SelectedRows[0].Cells[3].Value;
user.Email = (string) dataGridView1.SelectedRows[0].Cells[4].Value;
user.Password = (string) dataGridView1.SelectedRows[0].Cells[5].Value;
SecondObject obj = new SecondObject(user);

答案 2 :(得分:1)

首先, 我建议你使用Convert.ToInt32()Convert.ToString() 而不是在你的问题中像那样投射。

然后请检查班级User

的可访问性

如果您使用的是Visual Studio,则可以通过键盘上的{F12}轻松检查类定义。

如果课程不在同一个项目中,请添加参考资料。

如果类不在同一名称空间中,请添加一行using xxxxx;

如果仍然无法获取值,请将所有属性更改为公开。

最后, 我想你可以通过这些代码行来获取值:

txtUserID.Text = User.Id.ToString();
txtUserName.Text = User.UserName;
txtFirstName.Text = User.FirstName;
txtLastName.Text = User.LastName;
txtEmail.Text = User.Email;
txtPassword.Text = User.Password;

我建议您不要在文本框中显示密码。

如果您对C#还有任何疑问,请与我们联系。