dataGridView的用法
- 格式:docx
- 大小:12.53 KB
- 文档页数:2
datagridview技巧DataGridView是Windows Forms中常用的控件之一,可以在应用程序中展示和编辑表格数据。
下面介绍一些DataGridView的技巧。
1. 在DataGridView中添加数据:可以通过代码动态添加数据,也可以将数据源绑定到DataGridView上。
使用DataSource属性可以绑定数据源,也可以手动遍历数据,使用Rows和Cells属性来添加数据。
2. 设置列样式:可以通过DataGridView的Column属性设置列的样式和属性,如宽度、标题文本、数据类型等。
还可以通过DefaultCellStyle属性设置列的默认单元格样式。
3. 单元格格式和数据验证:可以通过CellFormatting事件来自定义单元格的显示格式,如日期格式、货币格式等。
还可以通过CellValidating事件来验证用户输入的数据,并给出提示。
4. 排序和筛选:可以通过Sort方法对DataGridView中的数据进行排序。
还可以使用AutoFilter属性启用或禁用列标题的自动筛选功能,方便用户筛选数据。
5. 选择和编辑:可以通过SelectionMode属性设置选择模式,如单选、多选等。
还可以通过ReadOnly属性设置是否允许用户编辑单元格。
另外,还可以通过SelectedCells和SelectedRows属性获取用户选择的单元格或行。
6. 自定义单元格和行样式:可以通过CellPainting和RowPostPaint事件来自定义单元格和行的样式,如背景色、字体等。
可以根据特定的条件来改变单元格或行的样式,以提升用户体验。
7. 导出数据:可以通过DataGridView的GetClipboardContent方法将DataGridView中的数据导出为文本或HTML格式,方便数据的导出和共享。
以上是一些常用的DataGridView技巧,希望对您有帮助。
DataGridView用法1.概述D a ta Gr id Vi ew是Wi n do ws Fo rm s中一种常用的控件,用于展示和编辑表格数据。
本文将介绍Da ta Gr id Vi ew的基本用法和常用功能。
2.基本用法2.1创建D a t a G r i d V i e w要使用D at aG ri dVi e w,首先需要在窗体上进行控件的创建和初始化。
可以通过拖拽控件到窗体上或者在代码中动态创建控件。
2.2数据绑定在D at aG ri dV ie w中展示数据通常需要进行数据绑定。
可以通过设置D a ta So ur ce属性来实现数据绑定,可以绑定Da ta Ta bl e、B i nd in gS ou rc e等数据源。
2.3列定义可以通过列定义来指定D at aG ri dV ie w中的列数、列名、列类型等属性。
可以使用Da ta Gr i dV ie w的Co lu mns集合来对列进行操作。
2.4行操作可以通过Da ta Gr idV i ew的R ow s集合对行进行操作,如添加、删除、插入等操作。
可以根据行索引或行对象进行操作。
3.常用功能3.1样式设置可以通过设置Da ta Gr i dV ie w的Ce ll Sty l e、C o lu mn He ad er De fau l tC el lS ty le、R ow H ea de rs De fa ul tCe l lS ty le等属性来设置样式,如背景色、字体、对齐方式等。
3.2单元格编辑D a ta Gr id Vi ew可以方便地对单元格进行编辑,可以根据需要设置单元格的可编辑性,只读属性等。
可以通过事件处理程序来实现特定单元格的编辑操作。
3.3排序和筛选D a ta Gr id Vi ew提供了对数据进行排序和筛选的功能。
可以通过设置A l lo wS or ti ng属性来启用排序功能,通过设置A l lo wU se rT oF il ter C ol um ns属性来启用筛选功能。
DataGridView冻结列或⾏、列顺序调整、操作⾏头列头标题的⽅法⼀、冻结列DataGridViewColumn.Frozen属性为true时,该列左侧的所有列被固定,横向滚动时固定列不随滚动条滚动⽽左右移动。
这对于重要列固定很有⽤。
⽰例:通过程序固定左侧第⼆列//固定第⼆列this.dgv_PropDemo.Columns[1].Frozen = true;通过设计界⾯固定列选择编辑列选择要冻结的列,将Frozen属性勾选⼆、冻结⾏DataGridViewRow.Frozen属性为true时,该⾏上⾯的所有⾏被固定,纵向滚动时固定⾏不随滚动条滚动⽽上下移动。
(冻结⾏只能通过代码实现)⽰例;固定第⼀⾏//固定第⼀⾏this.dgv_PropDemo.Rows[0].Frozen = true;三、列顺序的调整设定DataGridView的AllowUserToOrderColumns为True的时候,⽤户可以⾃由调整列的顺序。
当⽤户改变列的顺序的时候,其本⾝的Index不好改变,但是DisplayIndex改变了。
也可以通过程序改变DisplayIndex来改变列的顺序。
列顺序发⽣改变时会引发ColumnDisplayIndexChanged事件。
四、⾏头和列头改变DataGridView的第⼀列列头内容:this.dgv_PropDemo.Columns[0].HeaderCell.Value = "第⼀列";改变DataGridView的第⼀⾏⾏头内容:this.dgv_PropDemo.Rows[0].HeaderCell.Value = "第⼀⾏";改变DataGridView的左上头部单元内容:this.dgv_PropDemo.TopLeftHeaderCell.Value = "左上⾓";运⾏效果:另外,也可以通过HeaderText来改变列头的内容:this.dgv_PropDemo.Columns[1].HeaderText = "第⼆列";HeaderText和HeaderCell的区别:HeaderText只能改变⽂本内容,HeaderCell除了可以改变内容以外,还可以改变样式,例如字体⼤⼩、颜⾊等。
DataGridView控件用法合集目录DataGridView控件用法合集(一)1. DataGridView当前的单元格属性取得、变更2. DataGridView编辑属性3. DataGridView最下面一列新追加行非表示4. DataGridView判断当前选中行是否为新追加的行5. DataGridView删除行可否设定6. DataGridView行列不表示和删除DataGridView控件用法合集(二)7. DataGridView行列宽度高度设置为不能编辑8. DataGridView行高列幅自动调整9. DataGridView指定行列冻结10. DataGridView列顺序变更可否设定11. DataGridView行复数选择12. DataGridView选择的行、列、单元格取得DataGridView控件用法合集(三)13. DataGridView指定单元格是否表示14. DataGridView表头部单元格取得15. DataGridView表头部单元格文字列设定16. DataGridView选择的部分拷贝至剪贴板17.DataGridView粘贴18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) DataGridView控件用法合集(四)19. DataGridView中的ContextMenuStrip属性20. DataGridView指定滚动框位置21. DataGridView手动追加列22. DataGridView全体分界线样式设置23. DataGridView根据单元格属性更改显示内容24. DataGridView新追加行的行高样式设置る25. DataGridView新追加行单元格默认值设置DataGridView中输入错误数据的处理(五)26. DataGridView单元格数据错误标签表示27. DataGridView单元格内输入值正确性判断28. DataGridView单元格输入错误值事件的捕获DataGridView控件用法合集(六)29. DataGridView行排序(点击列表头自动排序的设置)30. DataGridView自动行排序(新追加值也会自动排序)31. DataGridView自动行排序禁止情况下的排序32. DataGridView指定列指定排序DataGridView控件用法合集(七)33. DataGridView单元格样式设置34. DataGridView文字表示位置的设定35. DataGridView单元格内文字列换行36. DataGridView单元格DBNull值表示的设定37. DataGridView单元格样式格式化38. DataGridView指定单元格颜色设定39. DataGridView单元格文字字体设置40. DataGridView根据单元格值设定单元格样式DataGridView控件用法合集(八)41. DataGridView设置单元格背景颜色42. DataGridView行样式描画43. DataGridView显示行号44. DataGridView焦点所在单元格焦点框不显示的设定DataGridView控件用法合集(九)45. DataGridView中显示选择框CheckBox46. DataGridView中显示下拉框ComboBox47. DataGridView单击打开下拉框48. DataGridView中显示按钮49. DataGridView中显示链接50. DataGridView中显示图像DataGridView控件用法合集(十)51. DataGridView编辑中单元格控件取得52. DataGridView输入自动完成53. DataGridView单元格编辑时键盘KEY事件取得54. DataGridView下拉框(ComboBox)单元格编辑时事件取得55. DataGridView下拉框(ComboBox)单元格允许文字输入设定DataGridView控件用法合集(十一)56. DataGridView根据值不同在另一列中显示相应图片57. DataGridView中显示进度条(ProgressBar)58. DataGridView中添加MaskedTextBoxDataGridView控件用法合集(十二)59. DataGridView中Enter键按下焦点移至旁边的单元格60. DataGridView行集合化(Group)正文DataGridView控件用法合集(一)1. DataGridView当前的单元格属性取得、变更2. DataGridView编辑属性3. DataGridView最下面一列新追加行非表示4. DataGridView判断当前选中行是否为新追加的行5. DataGridView删除行可否设定6. DataGridView行列不表示和删除1.当前的单元格属性取得、变更[]'当前选中单元的值Console.WriteLine(DataGridView1.CurrentCell.Value)'当前列的Index值Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex)'当前单元的行Index值Console.WriteLine(DataGridView1.CurrentCell.RowIndex)'将控件中(0, 0)处的值,赋给当前单元格.DataGridView1.CurrentCell = DataGridView1(0, 0)2.DataGridView编辑属性全部单元格编辑属性[]'DataGridView1只读属性DataGridView1.ReadOnly = True指定行列单元格编辑属性[]DataGridView1.Columns(1).ReadOnly = TrueDataGridView1.Rows(2).ReadOnly = TrueDataGridView1(0, 0).ReadOnly = True根据条件判断单元格的编辑属性下例中column2的值是True的时候,Column1设为可编辑[]Private Sub DataGridView1_CellBeginEdit(ByVal sender As Object, _ByVal e As DataGridViewCellCancelEventArgs) _Handles DataGridView1.CellBeginEditDim dgv As DataGridView = CType(sender, DataGridView)If dgv.Columns(e.ColumnIndex).Name = "Column1" AndAlso _Not CBool(dgv("Column2", e.RowIndex).Value) Thene.Cancel = TrueEnd IfEnd Sub3.DataGridView最下面一列新追加行非表示[]DataGridView1.AllowUserToAddRows = False4.判断当前选中行是否为新追加的行[]If DataGridView1.CurrentRow.IsNewRow ThenConsole.WriteLine("現在のセルがある行は、新しい行です。
一、VB6简介Visual Basic 6.0(VB6)是微软公司于1998年推出的一款集成开发环境(IDE),是一种基于事件驱动的第三代事件驱动语言。
它允许开发者以快速、简单的方式创建Windows应用程序。
VB6具有可视化编程的特点,允许开发者以拖拽控件的方式构建界面,极大地提高了开发效率。
二、DataGridView控件概述DataGridView控件是VB6中用于显示和编辑数据的控件,它提供了功能强大的数据表格展示能力,可以实现类似Excel表格的功能。
它是VB6中用于数据展示的重要控件之一,具有灵活性高、界面友好等特点。
三、DataGridView控件的基本用法使用DataGridView控件展示数据一般需要以下步骤:1. 在VB6的工具箱中找到DataGridView控件,将其拖拽到窗体中。
2. 设置数据源:可以通过ADODB连接数据库,或者手动添加数据到DataGridView中。
3. 配置列:可以设置每一列的名称、宽度、颜色等属性。
4. 对DataGridView进行一些基本的样式调整,比如添加边框、更换背景颜色等。
四、DataGridView控件的高级用法除了基本的展示功能外,DataGridView控件还支持一些高级用法,比如:1. 数据编辑:可以在DataGridView中实现对数据的增删改操作,通过单元格的编辑功能实现数据的实时更新。
2. 数据筛选:可以根据条件对数据进行筛选,实现灵活的数据展示。
3. 数据导出:可以将DataGridView中的数据导出为Excel表格或者其他格式的文件。
4. 事件处理:可以通过DataGridView的事件来监听用户的操作,比如单元格的点击、双击等操作。
五、DataGridView控件的注意事项在使用DataGridView控件时需要注意一些问题,比如:1. 对数据源的操作需要小心,避免出现数据同步问题。
2. 对于大量数据的展示,需要注意性能优化,避免出现卡顿现象。
dataGridView的用法dataGridView的几个基本操作:1、获得某个(指定的)单元格的值:dataGridView1.Row[i].Cells[j].Value;2、获得选中的总行数:dataGridView1.SelectedRows.Count;3、获得当前选中行的索引:dataGridView1.CurrentRow.Index;4、获得当前选中单元格的值:dataGridView1.CurrentCell.Value;5、取选中行的数据string[] str = new string[dataGridView.Rows.Count];for(int i;i<datagridview1.rows.count;i++)< bdsfid="75" p=""></datagridview1.rows.count;i++)<>{if(dataGridView1.Rows[i].Selected == true){str[i] = dataGridView1.Rows[i].Cells[1].Value.ToString();}}7、获取选中行的某个数据int a = dataGridView1.SelectedRows.Index;dataGridView1.Rows[a].Cells["你想要的某一列的索引,想要几就写几"].Value;int a=dataGridView1.CurrentRow.Index;stringstr=dataGridView1.Row[a].Cells["strName"].Value.T ostring();DataRowState rowState=new DataRowState ();DataTable dt=(DataTable)this.dgvStudentInfo .DataSource ;for (int i = 0; i < dt.Rows.Count; i++){//rowState == DataRowState.Added || rowState == DataRowState.Detached ||if (rowState == DataRowState.Modified){//dt.Rows[i].Delete();//dt.ImportRow(dt.Rows[i]);//dgvStudentInfo.DataSource = dt;//dgvStudentInfo.Refresh();bllStudent.Update(stuModel);}}选中行的某个数据//string stuid = dgvStuInfo.Rows[0].Cells[0].Value.T oString();//int id = this.dgvStuInfo.CurrentRow.Cells[0].RowIndex;//string stuid = this.dgvStuInfo.Rows[id].Cells[0].Value.ToString();。
DataGridView控件⽤法(⼀)绑定数据⼀、DataGridView控件的⽤法(如何绑定、修改其中某⼀列值、添加序号列、交换任意2列显⽰顺序)1. DataGridView绑定数据源。
在页⾯上拖放⼀个DataGridView控件//连接数据库读取数据,为DataGridView赋值。
String strConn = "server= .\XWPC_DATABASE;uid=数据库⽤户名;pwd=数据库密码;database=数据库名";SqlConnection conn = new SqlConnection(strConn);String sqlId = "select * from [USER] ";conn.Open();SqlCommand cmd = new SqlCommand(sqlId, conn);SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da.Fill(ds, "USER");DataGridView.DataSource = ds;DataGridView.DataMember = "USER";conn.Close();上述代码执⾏后页⾯上数据显⽰是这样的:2. 修改 DataGridView中数据的表头(本来默认是数据库中的字段名)。
//改变DataGridView的表头DataGridView.Columns[1].HeaderText = "⽤户名";//设置该列宽度DataGridView.Columns[1].Width = 70;3. 将DataGridView最前⾯⼀列编号改为从1开始依次增加的序号(默认的字段编号对⽤户没意义,⽽且不连续)。
//在表前⾯加⼀列表⽰序号DataGridView.Columns[0].HeaderText = "编号";DataGridView.Columns[0].Width = 60;//⾃动整理序列号int coun = DataGridView.RowCount;for (int i = 0; i < coun - 1; i++){DataGridView.Rows[i].Cells[0].Value = i + 1;DataGridView.Rows[i].Cells["USER_ID"].Value = i + 1;}//改变DataGridView的表头DataGridView.Columns[1].HeaderText = "⽤户名";//设置该列宽度DataGridView.Columns[1].Width = 70;DataGridView.Columns[2].HeaderText = "密码";DataGridView.Columns[2].Width = 70;//默认按顺序每列DataGridView依次从ds中对应赋值DataGridView.Columns[0].DataPropertyName = ds.Tables[0].Columns[0].ToString();执⾏后效果如下:4. 对调 DataGridView中某两列的顺序,代码如下: //改变DataGridView的表头DataGridView.Columns[1].HeaderText = "密码";//设置该列宽度DataGridView.Columns[1].Width = 70;DataGridView.Columns[1].DataPropertyName =ds.Tables[0].Columns[2].ToString();DataGridView.Columns[2].HeaderText = "⽤户名";DataGridView.Columns[2].Width =70;DataGridView.Columns[2].DataPropertyName = ds.Tables[0].Columns[1].ToString(); 执⾏效果:5. 设置DataGridView使某列不显⽰、使其不可直接编辑、使其不显⽰最后⼀⾏空⽩。
datagridview,DataGridView单元格赋值、删除行、及实例单元格赋值DataGridView1.Rows.Add()'首先新增一空行方法一:DataGridView1.Item("Column1", 1).Value = "adsfsdf" '其中Column1是列名称(列的name属性值)并非列的text值,1代表第1行方法二:DataGridView1.Rows(1).Cells(0).Value = "Test" '其中1是第一行,0是第0个单元格,datagridview中起始行号和列号及单完格都从0开始计删除行方法一:DataGridView1.Rows.Remove(DataGridView1.CurrentRow )'删除当前光标所在行DataGridView1.Rows.Remove(DataGridView1.Rows(DataG ridView1.Rows.Count - 1))'删除最后一行DataGridView1.Rows.Clear()'删除所有行方法二:tnck = "料件进口合同表"Dim ds As New DataSet()Dim sql As StringobjSqlConnection.Open()sql = "delete from " tnck " where 序号='" & DataGridView1.CurrentRow.Cells("序号").Value & "'"Dim sda As SqlDataAdaptersda = New SqlDataAdapter(sql, objSqlConnection)ds = New DataSetsda.Fill(ds, tnck)DataGridView1.DataSource = ds.Tables(tnck)objSqlConnection.Close()MsgBox("删除完成!")方法三private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e){r = e.RowIndex; //获取当前选择行的行号c = dataGridView1.Rows[r].Cells[1].Value.ToString(); //根据当前选择行的行号匹配得到(Cells[0])0列的数据}完整的一个例子using System;using System.Collections.Generic;using/doc/291697102.html,ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace led{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void btnSend_Click(object sender, EventArgs e){if (this.serialPort1.IsOpen){this.serialPort1.Close();}this.serialPort1.PortName = this.cbSerial.Text;this.serialPort1.Open();System.Drawing.Bitmap bmp = new Bitmap(this.tbCurrent.Width, this.tbCurrent.Height);this.tbCurrent.DrawToBitmap(bmp,newRectangle(0,0,bmp.Width,bmp.Height));Until.SendBmp(this.serialPort1, bmp);}private void Form1_Load(object sender, EventArgs e){FillAllData(0);}private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e){this.tbContent.Text = this.dgvData["content", e.RowIndex].Value.ToString();this.tbCurrent.Text = this.dgvData["content", e.RowIndex].Value.ToString();this.tbCurrentSortid.Text = this.dgvData["sortid", e.RowIndex].Value.ToString();id = e.RowIndex;}private int id;private void button2_Click(object sender, EventArgs e) {if (this.tbContent.T ext == ""){MessageBox.Show("输入内容不能为空");return;}int count = Until.GetLineCount(tbContent);string[] temp = new string[50];for (int i = 0; i < count; i ){DB.insertLED(Until.GetLine(tbContent, i));}FillAllData(this.dgvData.Rows.Count);datachange = true;}private void button1_Click(object sender, EventArgs e) {if (this.tbContent.T ext == ""){MessageBox.Show("输入内容不能为空");return;}int count = Until.GetLineCount(tbContent);if (count > 1){MessageBox.Show("修改只限于1行,不能多于一行");return;}if (DB.updateLEDcontent(tbContent.Text,dgvData["id",i d].Value.ToString()) > 0){FillAllData(id);datachange = true;}}private void FillAllData(int selectid){this.dgvData.DataSource = DB.selectLEDcontent();this.dgvData.Columns["id"].Visible = false;this.dgvData.Columns["content"].HeaderText = "显示内容";this.dgvData.Columns["content"].Width = 300;this.dgvData.Columns["sortid"].HeaderText = "序号";this.dgvData.Columns["inputtime"].HeaderText = "最近修改时间";this.dgvData.Columns["inputtime"].Width = 200;if (selectid > dgvData.Rows.Count - 1){selectid = dgvData.Rows.Count - 1;}this.dgvData.CurrentCell = this.dgvData.Rows[selectid].Cells["content"];}private void button4_Click(object sender, EventArgs e){DB.updateLEDsortid(dgvData["id", id].Value.ToString(), this.tbCurrentSortid.Text, this.nudNewSortid.Value.ToString());FillAllData((int)this.nudNewSortid.Value);datachange = true;}private void button3_Click(object sender, EventArgs e){DB.updateLEDsortidlast(dgvData["id", id].Value.ToString(), this.tbCurrentSortid.Text);FillAllData(this.dgvData.Rows.Count);datachange = true;}private void button5_Click(object sender, EventArgs e){this.timer1.Interval = (int)this.nudTime.Value * 1000;LoadData();this.timer1.Enabled = true;}private bool datachange = false;private string[] datatemp;private int datan = 0;private void timer1_Tick(object sender, EventArgs e) {if (datachange){LoadData();datan = 0;datachange = false;}try{this.tbCurrent.Text = datatemp[datan];}catchdatan = 0;this.tbCurrent.Text = datatemp[datan]; }datan ;//SendBySPort(this.textBox1);}private void LoadData(){datachange = true;datan = 0;DataTable dt = DB.selectLEDcontent(); int i = 0;datatemp = new string[dt.Rows.Count]; foreach (DataRow r in dt.Rows)datatemp[i] = r["content"].ToString();i ;}}private void SendBySPort(TextBox tb){if (this.serialPort1.IsOpen){this.serialPort1.Close();}this.serialPort1.PortName = this.cbSerial.Text;this.serialPort1.Open();System.Drawing.Bitmap bmp = new Bitmap(this.tbCurrent.Width, this.tbCurrent.Height);tb.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width,bmp.Height));Until.SendBmp(this.serialPort1, bmp);}private void button6_Click(object sender, EventArgs e){this.timer1.Enabled = false;}private void btnDeleteContent_Click(object sender, EventArgs e){DB.deleteLED(dgvData["id", id].Value.ToString());FillAllData(id);}}}。
datagridview控件用法
1、将datagridview控件添加到From:添加DataGridView控件,双击界面上的DataGridView,根据实际情况在设计界面里调整控件大小,在属性框中设置DataGridView的数据源(DataSource)的值。
2、定义控件的列:右键DataGridView,选择“属性”,然后在弹出的对话框中,将“列集合”条目选中,点击“...”,此时可以定义你想要的列,设置列名、数据类型、宽度等信息。
3、绑定数据源:当定义好DataGridView的列后,为了显示该出来的具体的数据,可以将DataGridView与真实的数据源绑定,即可在DataGridView中显示具体数据,可以在设计时通过Visual Studio的Data Sources应用程序,或者在窗体上加载DataGridView控件时,通过代码来实现。
4、DataGridView添加行或者删除行:可以使用DataGridView的Rows属性来添加新行,或者通过使用RemoveAt(int index)方法来删除列中指定行。
5、DataGridView编辑功能及事件:默认情况下DataGridView中支持修改单元格数据,可以设置DataGridView的ReadOnly属性为false使其允许进行修改,并且DataGridView中TextBox派生的控件中的CellValidating事件、
CellValueChanged事件等都可以响应DataGridView的编辑功能,可以在这些事件中实现对数据的监测或者保存数据的操作。
C#DataGridView⾏和列的操作DataGridView的⼏个基本操作:1、获得某个(指定的)单元格的值:dataGridView1.Row[i].Cells[j].Value;2、获得选中的总⾏数:dataGridView1.SelectedRows.Count;3、获得当前选中⾏的索引:dataGridView1.CurrentRow.Index;4、获得当前选中单元格的值:dataGridView1.CurrentCell.Value;5、取选中⾏的数据string[] str = new string[dataGridView.Rows.Count];for(int i;i<dataGridView1.Rows.Count;i++){if(dataGridView1.Rows[i].Selected == true){str[i] = dataGridView1.Rows[i].Cells[1].Value.ToString();}}7、获取选中⾏的某个数据int a = dataGridView1.SelectedRows.Index;dataGridView1.Rows[a].Cells[“你想要的某⼀列的索引,想要⼏就写⼏”].Value;获得某个(指定的)单元格的值: dataGridView1.Row[i].Cells[j].Value; Row[i] 应该是Rows[i]int a=dataGridView1.CurrentRow.Index;string str=dataGridView1.Row[a].Cells[“strName”].Value.Tostring();selectedRows[0]当前选中的⾏.cell[列索引].values 就是当前选中⾏的某个单元格的值DataGridView1.SelectedCells(0).Value.ToString 取当前选择单元内容DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString 当前选择单元第N列内容。