根据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();
}
}