DataGridView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataGridView相关的知识,希望对你有一定的参考价值。

DataGridView已经自动加载了数据库表中的内容!

点击DataGridView当中某项后,再点按钮,就能把点中的那一行的所有内容,对应显示到几个textbox当中!
C#的 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
都不行啊,,解决不了,,。。。
提高悬赏,,快来回答啊!!!

参考技术A 首先定义DataGridView的名称 DGV_Show,将它的selectionMode属性调成FullRowSelect;将MultiSelect属性调成false;
假设DGV_Show上显示的数据有三列,如下所示
name num age
张三; 1; 20
李四; 2; 21

对应的三个TextBox的名称为 txtBox1,txtBox2,txtBox3;
选中DGV_Show的一条记录之后,你所点击的按钮事件的代码如下:
void button_Click()

if(DGV_Show.SelectRows.SelectedRows.Count == 1)

txtBox1.Text=DGV_Show.SelectedRows[0].Cells[0].Value.ToString();
txtBox2.Text=DGV_Show.SelectedRows[0].Cells[1].Value.ToString();
txtBox3.Text=DGV_Show.SelectedRows[0].Cells[2].Value.ToString();

else

MessageBox.Show("您还没有选择一行记录,请选择!");


如此,三个TextBox中的值就是你所选的那条记录的三个值,这样也就实现了你所要求的功能
参考技术B public Form1()

InitializeComponent();

this.dataGridView1.CellClick += new DataGridViewCellEventHandler(dataGridView1_CellClick);



void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

string str = this.dataGridView1.CurrentRow.Cells["你要的列的名"].Value.ToString();
this.TextBox1.Text = str;


还不明白找我Q,用户名就是本回答被提问者采纳
参考技术C protected void Button4_Click(object sender, EventArgs e)

//try
//
if (this.GridView1.SelectedIndex < 0 || tiaoj.SelectedIndex == 0)

aa.RaiseExcept("请确认选择了修改记录(条件)");

else


SqlConnection ci = aa.Getcon();
ci.Open();
SqlDataReader dd;
SqlCommand cnn = new SqlCommand();
cnn.Connection = ci;
cnn.CommandText = "select S.SN,name,sex =case when IsNull(sex,1)=1 then '男' else '女' end,class,S.academy,cname,term,grade,teacher from S,SC,C where S.SN=SC.SN and C.CN=SC.CN";
dd = cnn.ExecuteReader();
dd.Read();
TextBox1.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[1].Text.ToString();
TextBox2.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[2].Text.ToString();
TextBox3.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[3].Text.ToString();
TextBox4.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[4].Text.ToString();
TextBox5.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[5].Text.ToString();
TextBox6.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[6].Text.ToString();
TextBox7.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[7].Text.ToString();
TextBox8.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[8].Text.ToString();
TextBox9.Text = GridView1.Rows[GridView1.SelectedIndex].Cells[9].Text.ToString();
dd.Close();
ci.Close();

参考技术D DataGirdView有个SelectionChanged事件,在这个事件中写上
txtbox.text=dataGridView1[3,dataGridView1.CurrentRow.Index].value

其中的3是你的列的索引也可以是列的名称(中文也行)
第5个回答  2008-05-27 你双击DataGridView会出现一个事件,看事件穿的参数,用第二个参数.看后面的方法和属性,有一个index可以获取选中的行

winform datagridview怎么选中多行

参考技术A 设置DataGridView的属性SelectionMode为FullRowSelect
这样就使DataGridView不是选择一个字段,而是选择一整行了

设置DataGridView的属性MultiSelect为false
这样就使DataGridView不能够选择多行,只能选择一行了
想得到某列的值是要判断DataGridView是否有选中的行
if (dataGridView1.SelectedCells.Count != 0)

//得到选中行的索引
int intRow = dataGridView1.SelectedCells[0].RowIndex;
//得到列的索引
int intColumn = dataGridView1.SelectedCells[0].ColumnIndex;
//得到选中行某列的值
string str = dataGridView1.CurrentRow.Cells[2].Value.ToString();
MessageBox.Show(str);
本回答被提问者采纳

以上是关于DataGridView的主要内容,如果未能解决你的问题,请参考以下文章

在DataGridView中获取用户添加的行

将组合框添加到 DataGridView 标题

C#winform中datagridview导出Excel

C#中datagridview导出Excel将身份证号设置为文本格式,而不是科学计数法格式