datagridview的单击事件

Posted

tags:

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

我在from里加了一个datagridview控件绑定了SQL数据库里的一个表
我想单击datagridview里的某一行的时候就把这一行的数据显示在几个textBox控件里,请问怎么实现?
我在datagridview控件的单击事件里写了怎么有的时候有反应,有的时候没反应啊,就连在里面写 MessageBox.Show("sdfv")都是有的时候有反应,有的时候没有,并且没有什么规律
那位大侠解决一下了啦

参考技术A 把datagridview换成listview

下面几个方法换成你需要实现数据的TxtBox因为我的代码是传的窗体,你换成textbox
public selectForm(EnterGoodsForm ef)

InitializeComponent();
_dv = ef.dataGridView1;


public selectForm(UntreadForm uf)

InitializeComponent();
_dv = uf.dataGridView1;


public selectForm(AddtransferInfoForm uf)

InitializeComponent();
_dv = uf.dataGridView1;


public selectForm(AllmoneyPickgoodsForm uf)

InitializeComponent();
_dv = uf.dataGridView1;


public selectForm(returnGoodsForm uf)

InitializeComponent();
_dv = uf.dataGridView;


public selectForm(NotAllmoneyPickgoodsForm napf)

InitializeComponent();
_dv = napf.dataGridInInfo;


这里开始是双击事件
/// <summary>
/// 双击ListView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void listView1_DoubleClick(object sender, EventArgs e)


SetListInfo();



/// <summary>
/// 将用户选择的商品信息列显示到DataGridView
/// </summary>
public void SetListInfo()

listView1.MultiSelect = false;
try

if (listView1.SelectedIndices.Count > 0)

string str0 = null, str1 = null, str2 = null, str3 = null, str4 = null, str5 = null;

//获取所选ListView的行信息
foreach (int i in this.listView1.SelectedIndices)

str0 = this.listView1.Items[i].SubItems[0].Text.ToString();
str1 = this.listView1.Items[i].SubItems[1].Text.ToString();
str2 = this.listView1.Items[i].SubItems[2].Text.ToString();
str3 = this.listView1.Items[i].SubItems[3].Text.ToString();
str4 = this.listView1.Items[i].SubItems[4].Text.ToString();
str5 = this.listView1.Items[i].SubItems[5].Text.ToString();



if (CheckValue(str0) == true)

_count = (int)_dv.Tag;
_dv.Rows[_count].Cells[0].Value = str0;
_dv.Rows[_count].Cells[1].Value = str1;
_dv.Rows[_count].Cells[2].Value = str2;
_dv.Rows[_count].Cells[3].Value = str3;
_dv.Rows[_count].Cells[4].Value = str4;
_dv.Rows[_count].Cells[5].Value = str5;
_dv.Rows[_count].Cells[6].Value = "未填写";

_dv.Rows[_count].Cells[7].Value = "未填写";

_dv.Tag = _count + 1;

//当DataGridView显示的行数达到当前最大行数时,行数自增1
if ((int)_dv.Tag > 6)

_dv.Rows.Add(1);

this.Dispose();

else

MessageBox.Show("您已经选择过此列商品信息,请确认后重新选择!", "提示^^", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);


else

MessageBox.Show("请选择一行商品信息列后再单击按钮!", "提示^^", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);



catch (Exception)

MessageBox.Show("请确认后再单击按钮!", "提示^^", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);



照着改吧``我正在写这方面的一个进销存
参考技术B 试下写在 OnRowDataBound="boundData"这个事件,后台函数为

protected void boundData(object sender, GridViewRowEventArgs e)

//代码
本回答被提问者采纳
参考技术C 用datagrideview麻烦的话,你就用listbox吧,这个以用就灵,试试,呵呵,学习愉快哦 参考技术D 没有试过,为什么不加个编辑按钮呢?
或者command的编辑,取消,更新。
第5个回答  2008-06-10 转换为模板

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

datagridview 单击某个单元格选中一行

vb中如何获取datagrid选中行的值?

vb.net Datagrid到另一个datagrid的值

datagridview的单击事件

wpf datagrid 的单击事件是那个?

easyui datagrid 怎么去除单击行选中事件