<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/csharp-winform-pro-datagrv/</link>
<title><![CDATA[c# winform中关于对DataGridView的一些操作]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Fri, 22 Oct 2010 16:24:50 +0000</pubDate> 
<guid>https://www.heckjj.com/csharp-winform-pro-datagrv/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 微软雅黑;">c#中对DataGridView的一些操作，主要有对DataGridView设置字段名 、设置字段值、设定单元格表示 Error图标 、设定当前单元格、取得当前单元格内容、取得当前单元格的列 Index、 取得当前单元格的行 Index、向下一行、向上一行、取消 DataGridView1 为只读、设置 DataGridView1 为只读、设置 DataGridView1 的第2列整列单元格为只读并变色、设置 DataGridView1 的第3行整行单元格为只读并变色、设置 DataGridView1 的[0，0]单元格为只读并变色 、设置 DataGridView1 的第2列整列单元格为只读并变色、设置 DataGridView1 的第3行整行单元格为只读并变色、设置 DataGridView1 的[0，0]单元格为只读并变色、设置用户不能手动给 DataGridView1 添加新行、设置用户可以手动给 DataGridView1 添加新行、禁止DataGridView1的行删除操作、允许DataGridView1的行删除操作、DataGridView1的第一列隐藏 、DataGridView1的第一行隐藏、DataGridView1的第一列显示 、DataGridView1的第一行显示。&nbsp;&nbsp;</span><span style="font-family: 微软雅黑;"><br/>列头隐藏 <br/>行头隐藏 <br/>列头显示 <br/>行头显示 <br/>删除名为&quot;Column1&quot;的列 <br/>删除第四列 <br/>删除第三行 <br/>禁止用户改变DataGridView1的所有列的列宽 <br/>禁止用户改变DataGridView1的所有行的行高 <br/>允许用户改变DataGridView1的所有列的列宽 <br/>允许用户改变DataGridView1的所有行的行高 <br/>禁止用户改变DataGridView1的第一列的列宽 <br/>禁止用户改变DataGridView1的第一列的行宽 <br/>第一列的最小列宽设定为 100 <br/>第一行的最小行高设定为 50 <br/>禁止用户改变列头的高度 <br/>禁止用户改变行头的宽度 <br/>设定包括Header和所有单元格的列宽自动调整 <br/>设定包括Header和所有单元格的行高自动调整 <br/>第一列自动调整 <br/>设定列头的宽度可以自动调整 <br/>设定行头的宽度可以自动调整 <br/>让 DataGridView1 的所有列宽自动调整一下。 <br/>让 DataGridView1 的第三列的列宽自动调整一下。 <br/>让 DataGridView1 的所有行高自动调整一下。 <br/>让 DataGridView1 的第一行的行高自动调整一下。 <br/>列头高度自动调整 <br/>行头宽度自动调整 <br/>DataGridView1的左侧2列固定 <br/>DataGridView1 的上3行固定 <br/>改变DataGridView1的第一列列头内容 <br/>改变DataGridView1的第一行行头内容 <br/>改变DataGridView1的左上头部单元内容 <br/>改变DataGridView1的第二列列头内容 <br/>当前单元格是否选择的判断 <br/>获取剪切板的内容，并按行分割 <br/>是否是列头 <br/>按 Tab 分割数据 <br/>行头设定 <br/>单元格内容设定 <br/>DataGridView的行索引+1 <br/>设定单元格的ToolTip内容 <br/>设定列头的单元格的ToolTip内容 <br/>设定行头的单元格的ToolTip内容 <br/>DataGridView 的 ContextMenuStrip 设定 <br/>列的 ContextMenuStrip 设定 <br/>列头的 ContextMenuStrip 设定 <br/>行的 ContextMenuStrip 设定 <br/>单元格的 ContextMenuStrip 设定 <br/>列头的ContextMenuStrip设定 <br/>行头的ContextMenuStrip设定 <br/>如果单元格值是整数时 <br/>当&quot;Column1&quot;列是Bool型且为True时、设定其的ContextMenuStrip <br/>如果单元格是“Column1”列的单元格 <br/>将单元格值改为大写 <br/>应用该Format，Format完毕。 <br/>单元格列为“Column2”时 <br/>将单元格值设为大写 <br/>解析完毕 <br/>设定单元格的默认值 <br/>单元格值为负整数时，Error图标被表示。 <br/>行的错误提示的设定 <br/>验证通过的话，则清空行的错误提示 。<br/>下面看图所示：<br/><br/><a href="https://www.heckjj.com/attachment.php?fid=83" target="_blank"><img src="https://www.heckjj.com/attachment.php?fid=83" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>具体代码如下：<br/></span><br/><textarea name="code" class="c#" rows="15" cols="100">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.OracleClient;

&nbsp;&nbsp; 
using System.IO;&nbsp;&nbsp;
using System.Data.OleDb; 

namespace TestMouseMove
&#123;
&nbsp;&nbsp;public partial class Form3 : Form
&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;public Form3()
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgvLoad();
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;public void dgvLoad()
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Columns[0].HeaderCell.Value = &quot;姓名&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Columns[1].HeaderCell.Value = &quot;字段2&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Columns[2].HeaderCell.Value = &quot;字段3&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Columns[3].HeaderCell.Value = &quot;字段4&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Columns[4].HeaderCell.Value = &quot;字段5&quot;;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Rows.Add(&quot;黑色头发&quot;, &quot;1行2列&quot;, &quot;1行3列&quot;, &quot;1行4列&quot;, &quot;1行5列&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Rows.Add(&quot;紫色头发&quot;, &quot;2行2列aaaa&quot;, &quot;2行3列&quot;, &quot;2行4列&quot;, &quot;2行5列&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Rows.Add(&quot;蓝色头发&quot;, &quot;3行2列&quot;, &quot;3行3列&quot;, &quot;3行4列&quot;, &quot;3行5列&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Rows.Add(&quot;红色头发&quot;, &quot;4行2列&quot;, &quot;4行3列&quot;, &quot;4行4列&quot;, &quot;4行5列&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.Rows.Add(&quot;棕色头发&quot;, &quot;5行2列&quot;, &quot;5行3列&quot;, &quot;5行4列&quot;, &quot;5行5列&quot;);

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ShowCellErrors = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设定 (0, 0) 的单元格表示 Error图标
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1[3, 3].ErrorText = &quot;这是单元格提示错误信息,也可以再行头显示这个错误提示信息&quot;;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设定第4行(Index=3)的行头显示Error图标
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DataGridView1.Rows[0].ErrorText = &quot;不能输入负值。&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button1_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定 (1, 2) 为当前单元格
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.CurrentCell = DataGridView1[1, 2];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button2_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 取得当前单元格内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(DataGridView1.CurrentCell.Value.ToString());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 取得当前单元格的列 Index
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(DataGridView1.CurrentCell.ColumnIndex.ToString());
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 取得当前单元格的行 Index
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(DataGridView1.CurrentCell.RowIndex.ToString());
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// 向下遍历
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;private void button3_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int row = this.DataGridView1.CurrentRow.Index + 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (row &gt; this.DataGridView1.RowCount - 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row = 0;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.CurrentCell = this.DataGridView1[0, row];
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// 向上遍历
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;/summary&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;param name=&quot;e&quot;&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;private void button4_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int row = this.DataGridView1.CurrentRow.Index - 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (row &lt; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row = this.DataGridView1.RowCount - 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.DataGridView1.CurrentCell = this.DataGridView1[0, row];
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button5_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.ReadOnly)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 取消 DataGridView1 为只读
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ReadOnly = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 为只读
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ReadOnly = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.Gainsboro;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button6_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.Columns[1].ReadOnly)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的第2列整列单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].ReadOnly = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的第3行整行单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[2].ReadOnly = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的[0，0]单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1[0, 0].ReadOnly = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.White; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的第2列整列单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].ReadOnly = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.Gainsboro;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的第3行整行单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[2].ReadOnly = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Gainsboro;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置 DataGridView1 的[0，0]单元格为只读并变色
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1[0, 0].ReadOnly = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Gainsboro; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button7_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.EditMode.Equals(DataGridViewEditMode.EditOnEnter))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.Red;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button8_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[DataGridView1.CurrentCell.RowIndex].Cells[DataGridView1.CurrentCell.ColumnIndex].Style.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.BeginEdit(true);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button9_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.AllowUserToAddRows)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置用户不能手动给 DataGridView1 添加新行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToAddRows = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置用户可以手动给 DataGridView1 添加新行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToAddRows = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button10_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.AllowUserToDeleteRows)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止DataGridView1的行删除操作。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToDeleteRows = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.Wheat;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 允许DataGridView1的行删除操作。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToDeleteRows = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.DefaultCellStyle.BackColor = Color.White;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button11_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.Columns[0].Visible)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1的第一列隐藏
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].Visible = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1的第一行隐藏
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].Visible = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1的第一列显示
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].Visible = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1的第一行显示
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].Visible = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button12_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.ColumnHeadersVisible)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列头隐藏
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ColumnHeadersVisible = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行头隐藏
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.RowHeadersVisible = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列头显示
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ColumnHeadersVisible = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行头显示
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.RowHeadersVisible = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button13_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 删除名为&quot;Column1&quot;的列
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns.Remove(&quot;Column1&quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 删除第四列
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns.RemoveAt(2);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 删除第三行
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows.RemoveAt(2);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button14_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (DataGridViewRow r in DataGridView1.SelectedRows)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!r.IsNewRow)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows.Remove(r);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button15_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.AllowUserToResizeColumns)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止用户改变DataGridView1的所有列的列宽
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToResizeColumns = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//禁止用户改变DataGridView1的所有行的行高
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToResizeRows = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 允许用户改变DataGridView1的所有列的列宽
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToResizeColumns = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 允许用户改变DataGridView1的所有行的行高
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToResizeRows = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button16_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止用户改变DataGridView1的第一列的列宽
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止用户改变DataGridView1的第一列的行宽
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button17_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 第一列的最小列宽设定为 100
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].MinimumWidth = 200;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 第一行的最小行高设定为 50
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].MinimumHeight = 50;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button18_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止用户改变列头的高度
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ColumnHeadersHeightSizeMode =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 禁止用户改变行头的宽度
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.RowHeadersWidthSizeMode =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewRowHeadersWidthSizeMode.DisableResizing;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button19_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定包括Header和所有单元格的列宽自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定包括Header和所有单元格的行高自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button20_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 第一列自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].AutoSizeMode =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewAutoSizeColumnMode.DisplayedCells;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button21_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定列头的宽度可以自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ColumnHeadersHeightSizeMode =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewColumnHeadersHeightSizeMode.AutoSize;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定行头的宽度可以自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.RowHeadersWidthSizeMode =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button22_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 让 DataGridView1 的所有列宽自动调整一下。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button23_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 让 DataGridView1 的第三列的列宽自动调整一下。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeColumn(2, DataGridViewAutoSizeColumnMode.AllCells);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button24_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 让 DataGridView1 的所有行高自动调整一下。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//让 DataGridView1 的第一行的行高自动调整一下。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button25_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列头高度自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeColumnHeadersHeight();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行头宽度自动调整
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AutoResizeRowHeadersWidth(
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button26_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1的左侧2列固定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].Frozen = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[2].Width = 800;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button27_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView1 的上3行固定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[2].Frozen = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[3].Height = 500;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button28_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.AllowUserToOrderColumns = true;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button29_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 改变DataGridView1的第一列列头内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].HeaderCell.Value = &quot;第一列&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 改变DataGridView1的第一行行头内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].HeaderCell.Value = &quot;第一行&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 改变DataGridView1的左上头部单元内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.TopLeftHeaderCell.Value = &quot;左上&quot;;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 改变DataGridView1的第二列列头内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[1].HeaderText = &quot;第二列&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button30_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clipboard.SetDataObject(DataGridView1.GetClipboardContent());
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button31_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//当前单元格是否选择的判断
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (DataGridView1.CurrentCell == null)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int insertRowIndex = DataGridView1.CurrentCell.RowIndex;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int insertColumnsIndex = DataGridView1.CurrentCell.ColumnIndex;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 获取剪切板的内容，并按行分割
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string pasteText = Clipboard.GetText();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (string.IsNullOrEmpty(pasteText))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pasteText = pasteText.Replace(&quot; &quot;, &quot; &quot;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pasteText = pasteText.Replace(&#039; &#039;, &#039; &#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pasteText.TrimEnd(new char[] &#123; &#039; &#039; &#125;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[] lines = pasteText.Split(&#039; &#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool isHeader = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach (string line in lines)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 是否是列头
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (isHeader)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isHeader = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 按 Tab 分割数据
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string[] vals = line.Split(&#039; &#039;);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridViewRow row = DataGridView1.Rows[insertRowIndex];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行头设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//row.HeaderCell.Value = vals[0];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 单元格内容设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i &lt; vals.Length; i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row.Cells[insertColumnsIndex].Value = vals[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView的行索引+1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insertRowIndex++;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button32_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定单元格的ToolTip内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1[0, 0].ToolTipText = &quot;该单元格的内容不能修改&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定列头的单元格的ToolTip内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].ToolTipText = &quot;该列只能输入数字&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定行头的单元格的ToolTip内容
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].HeaderCell.ToolTipText = &quot;该行单元格内容不能修改&quot;;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.VirtualMode = false;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ShowCellToolTips = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MessageBox.Show(e.ToolTipText = e.ColumnIndex.ToString() + &quot;, &quot; + e.RowIndex.ToString());

&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button33_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DataGridView 的 ContextMenuStrip 设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ContextMenuStrip = this.ContextMenuStrip1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列的 ContextMenuStrip 设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].ContextMenuStrip = this.ContextMenuStrip2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列头的 ContextMenuStrip 设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行的 ContextMenuStrip 设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 单元格的 ContextMenuStrip 设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1[0, 0].ContextMenuStrip = this.ContextMenuStrip4;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (e.RowIndex &lt; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 列头的ContextMenuStrip设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ContextMenuStrip = this.ContextMenuStrip1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (e.ColumnIndex &lt; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 行头的ContextMenuStrip设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ContextMenuStrip = this.ContextMenuStrip2;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if (dgv[e.ColumnIndex, e.RowIndex].Value is int)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 如果单元格值是整数时
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ContextMenuStrip = this.ContextMenuStrip3;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 当&quot;Column1&quot;列是Bool型且为True时、设定其的ContextMenuStrip
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object boolVal = dgv[&quot;Column1&quot;, e.RowIndex].Value;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(boolVal);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (boolVal is bool &amp;&amp; (bool)boolVal)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ContextMenuStrip = this.ContextMenuStrip1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button34_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.BorderStyle = BorderStyle.None;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button35_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SunkenVertical;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button36_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button37_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button38_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.GridColor = Color.Red;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void button40_Click(object sender, EventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//foreach (Control c in this.Controls)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;c.Dispose();&nbsp;&nbsp;&nbsp;&nbsp;//如果有Panel等窗口的话,还得将子控件给 Dispose掉
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&#125;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView1.Dispose();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgvLoad();
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 如果单元格是“Column1”列的单元格
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (e.ColumnIndex &lt; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dgv.Columns[e.ColumnIndex].Name == &quot;Column1&quot; &amp;&amp; e.Value is string)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 将单元格值改为大写
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string str = e.Value.ToString();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Value = str.ToUpper();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 应用该Format，Format完毕。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.FormattingApplied = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//单元格列为“Column2”时
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dgv.Columns[e.ColumnIndex].Name == &quot;Column2&quot; &amp;&amp; e.Value is string)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//将单元格值设为大写
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Value = e.Value.ToString().ToUpper();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//解析完毕
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ParsingApplied = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设定单元格的默认值
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Row.Cells[&quot;Column1&quot;].Value = &quot;我&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Row.Cells[&quot;Column2&quot;].Value = &quot;是&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Row.Cells[&quot;Column3&quot;].Value = &quot;默&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Row.Cells[&quot;Column4&quot;].Value = &quot;认&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Row.Cells[&quot;Column5&quot;].Value = &quot;值&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellErrorTextNeeded(object sender, DataGridViewCellErrorTextNeededEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 单元格值为负整数时，Error图标被表示。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object cellVal = dgv[e.ColumnIndex, e.RowIndex].Value;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (cellVal is int &amp;&amp; ((int)cellVal) &lt; 0)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ErrorText = &quot;不能输入负整数。&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_RowErrorTextNeeded(object sender, DataGridViewRowErrorTextNeededEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dgv[&quot;Column1&quot;, e.RowIndex].Value == DBNull.Value &amp;&amp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgv[&quot;Column2&quot;, e.RowIndex].Value == DBNull.Value)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.ErrorText =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Column1和Column2必须输入一个值。&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (dgv.Columns[e.ColumnIndex].Name == &quot;Column4&quot; &amp;&amp; e.FormattedValue.ToString() == &quot;&quot;)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//行的错误提示的设定
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgv.Rows[e.RowIndex].ErrorText = &quot;值未输入。&quot;;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取消已经输入的内容，还原成上次的输入内容。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//dgv.CancelEdit()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取消之后的动作
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.Cancel = true;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;private void DataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
&nbsp;&nbsp;&nbsp;&nbsp;&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataGridView dgv = (DataGridView)sender;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//验证通过的话，则清空行的错误提示
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dgv.Rows[e.RowIndex].ErrorText = null;
&nbsp;&nbsp;&nbsp;&nbsp;&#125;

&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&#125;
&#125;</textarea><br/><br/><a href="attachment.php?fid=84">点击这里下载文件</a><br/>Tags - <a href="https://www.heckjj.com/tags/c%2523/" rel="tag">c#</a> , <a href="https://www.heckjj.com/tags/winform/" rel="tag">winform</a> , <a href="https://www.heckjj.com/tags/%25E5%2585%25B3%25E4%25BA%258E/" rel="tag">关于</a> , <a href="https://www.heckjj.com/tags/datagridview/" rel="tag">datagridview</a> , <a href="https://www.heckjj.com/tags/%25E4%25B8%2580%25E4%25BA%259B/" rel="tag">一些</a> , <a href="https://www.heckjj.com/tags/%25E6%2593%258D%25E4%25BD%259C/" rel="tag">操作</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/csharp-winform-pro-datagrv/#blogcomment</link>
<title><![CDATA[[评论] c# winform中关于对DataGridView的一些操作]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/csharp-winform-pro-datagrv/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>