根据Datagridview选中的行的数据,显示在对应的栏位中

来源:互联网 发布:男主很帅的动漫 知乎 编辑:程序博客网 时间:2024/05/22 13:00

根据Datagridview选中的行的数据,显示在对应的栏位中
1.数据源是Person类
1. 创建一个Person类
2. 添加Person的数据,并将数据绑定到datagridview的datasource中
3. 根据selectionchanged的事件,获取选中的行,并将对应的栏位显示在textbox中

private void Form1_Load(object sender, EventArgs e)        {            System.Collections.ArrayList person = new System.Collections.ArrayList();            person.Add(new Person { Id = 1, Name = "a", Age = 5 });            person.Add(new Person { Id = 2, Name = "b", Age = 6 });            person.Add(new Person { Id = 3, Name = "c", Age = 7 });            this.dataGridView1.SelectionMode =            DataGridViewSelectionMode.FullRowSelect;            this.dataGridView1.AutoGenerateColumns = true;            this.dataGridView1.DataSource = person;        }        private void dataGridView1_SelectionChanged(object sender, EventArgs e)        {            if (dataGridView1.SelectedRows.Count > 0)            {                Person person = (Person)dataGridView1.SelectedRows[0].DataBoundItem ;                txtid.Text = person.Id.ToString();                txtname.Text = person.Name.ToString();                txtage.Text = person.Age.ToString();            }        }        public class Person        {            public int Id {get;set;}            public string Name { get; set; }            public int Age { get; set; }        }

2.数据源是普通的数据表

public class Person        {            public int Id {get;set;}            public string Name { get; set; }            public int Age { get; set; }                        public Person getPerson(DataGridViewRow row)            {                Person person = new Person();                person.Id =int.Parse( row.Cells[0].Value.ToString());                person.Name = row.Cells[1].Value.ToString();                person.Age =int.Parse( row.Cells[2].Value.ToString());                return person;            }        }        private void Form1_Load(object sender, EventArgs e)        {            DataTable dt = new DataTable();            DataColumn Id = new DataColumn();            DataColumn Name = new DataColumn();            DataColumn Age = new DataColumn();            dt.Columns.Add(Id);            dt.Columns.Add(Name);            dt.Columns.Add(Age);            dt.Rows.Add(1, "a", 10);            dt.Rows.Add(2, "b", 20);            dt.Rows.Add(3, "c", 30);            dataGridView1.DataSource = dt;        }        private void dataGridView1_SelectionChanged(object sender, EventArgs e)        {            if (dataGridView1.SelectedRows.Count > 0)            {                foreach (DataGridViewRow row in dataGridView1.SelectedRows)                {                    Person pp = new Person();                    pp= pp.getPerson(row);                    txtid.Text = pp.Id.ToString();                    txtname.Text = pp.Name.ToString();                    txtage.Text = pp.Age.ToString();                                    }            }        }

3.利用linq查询出结果
 public class Person        {            public int Id {get;set;}            public string Name { get; set; }            public int Age { get; set; }                        public Person getPerson(DataGridViewRow row)            {                Person person = new Person();                person.Id =int.Parse( row.Cells[0].Value.ToString());                person.Name = row.Cells[1].Value.ToString();                person.Age =int.Parse( row.Cells[2].Value.ToString());                return person;            }        }        private void Form1_Load(object sender, EventArgs e)        {            DataTable dt = new DataTable();            DataColumn Id = new DataColumn("Id");            DataColumn Name = new DataColumn("Name");            DataColumn Age = new DataColumn("Age");            dt.Columns.Add(Id);            dt.Columns.Add(Name);            dt.Columns.Add(Age);            dt.Rows.Add(1, "a", 10);            dt.Rows.Add(2, "b", 20);            dt.Rows.Add(3, "c", 30);            dataGridView1.DataSource = dt;        }        private void dataGridView1_SelectionChanged(object sender, EventArgs e)        {            if (dataGridView1.SelectedRows.Count > 0)            {                Person items = (from DataGridViewRow row in dataGridView1.SelectedRows                          select new Person()                          {                              Id = int.Parse(row.Cells["Id"].Value.ToString()),                              Name = row.Cells["Name"].Value.ToString(),                              Age = int.Parse(row.Cells["Age"].Value.ToString())                          }).FirstOrDefault<Person>();                 txtid.Text = items.Id.ToString();                 txtname.Text = items.Name.ToString();                 txtage.Text = items.Age.ToString();            }        }


0 0
原创粉丝点击