从c#的属性中获取值

本文关键字:获取 属性 | 更新日期: 2023-09-27 18:11:39

我是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
}

dops类中的值存储正确,我已经检查过了。现在我想用User.cs.

从c#的属性中获取值

中的值来设置UpdateForm中的textbox。

首先,我建议你用Convert.ToInt32(), Convert.ToString()而不是在你的问题中像那样强制转换。

那么请检查User类的可达性

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

如果类不在同一个项目中,请添加参考。

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

如果您仍然无法获取值,请将所有属性更改为public

最后,我认为您可以通过输入以下代码行来获取值:

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#还有任何问题,请告诉我

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

User user = /* get reference to User */
textbox.Text = user.Username;

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

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);