c# winform 关于DataGridView的一些操作

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Text;  
  7. using System.Windows.Forms;  
  8.   
  9.   
  10.   
  11. using System.Data.OracleClient;  
  12.   
  13.      
  14. using System.IO;    
  15. using System.Data.OleDb;   
  16.   
  17. namespace TestMouseMove  
  18. {  
  19.     public partial class Form3 : Form  
  20.     {  
  21.         public Form3()  
  22.         {  
  23.             InitializeComponent();  
  24.             dgvLoad();  
  25.         }  
  26.   
  27.         public void dgvLoad()  
  28.         {  
  29.             this.DataGridView1.Columns[0].HeaderCell.Value = "姓名";  
  30.             this.DataGridView1.Columns[1].HeaderCell.Value = "字段2";  
  31.             this.DataGridView1.Columns[2].HeaderCell.Value = "字段3";  
  32.             this.DataGridView1.Columns[3].HeaderCell.Value = "字段4";  
  33.             this.DataGridView1.Columns[4].HeaderCell.Value = "字段5";  
  34.   
  35.             this.DataGridView1.Rows.Add("黑色头发""1行2列""1行3列""1行4列""1行5列");  
  36.             this.DataGridView1.Rows.Add("紫色头发""2行2列aaaa""2行3列""2行4列""2行5列");  
  37.             this.DataGridView1.Rows.Add("蓝色头发""3行2列""3行3列""3行4列""3行5列");  
  38.             this.DataGridView1.Rows.Add("红色头发""4行2列""4行3列""4行4列""4行5列");  
  39.             this.DataGridView1.Rows.Add("棕色头发""5行2列""5行3列""5行4列""5行5列");  
  40.   
  41.             DataGridView1.ShowCellErrors = true;  
  42.             //设定 (0, 0) 的单元格表示 Error图标  
  43.             DataGridView1[3, 3].ErrorText = "这是单元格提示错误信息,也可以再行头显示这个错误提示信息";  
  44.   
  45.             //设定第4行(Index=3)的行头显示Error图标  
  46.             //DataGridView1.Rows[0].ErrorText = "不能输入负值。";  
  47.         }  
  48.   
  49.         private void button1_Click(object sender, EventArgs e)  
  50.         {  
  51.             // 设定 (1, 2) 为当前单元格  
  52.             DataGridView1.CurrentCell = DataGridView1[1, 2];              
  53.         }  
  54.   
  55.         private void button2_Click(object sender, EventArgs e)  
  56.         {  
  57.             // 取得当前单元格内容  
  58.             MessageBox.Show(DataGridView1.CurrentCell.Value.ToString());  
  59.             // 取得当前单元格的列 Index  
  60.             MessageBox.Show(DataGridView1.CurrentCell.ColumnIndex.ToString());  
  61.             // 取得当前单元格的行 Index  
  62.             MessageBox.Show(DataGridView1.CurrentCell.RowIndex.ToString());  
  63.         }  
  64.   
  65.         /// <summary>  
  66.         /// 向下遍历  
  67.         /// </summary>  
  68.         /// <param name="sender"></param>  
  69.         /// <param name="e"></param>  
  70.         private void button3_Click(object sender, EventArgs e)  
  71.         {  
  72.             int row = this.DataGridView1.CurrentRow.Index + 1;  
  73.             if (row > this.DataGridView1.RowCount - 1)  
  74.                 row = 0;  
  75.             this.DataGridView1.CurrentCell = this.DataGridView1[0, row];  
  76.         }  
  77.   
  78.         /// <summary>  
  79.         /// 向上遍历  
  80.         /// </summary>  
  81.         /// <param name="sender"></param>  
  82.         /// <param name="e"></param>  
  83.         private void button4_Click(object sender, EventArgs e)  
  84.         {  
  85.             int row = this.DataGridView1.CurrentRow.Index - 1;  
  86.             if (row < 0)  
  87.                 row = this.DataGridView1.RowCount - 1;  
  88.             this.DataGridView1.CurrentCell = this.DataGridView1[0, row];  
  89.         }  
  90.   
  91.         private void button5_Click(object sender, EventArgs e)  
  92.         {  
  93.             if (DataGridView1.ReadOnly)  
  94.             {  
  95.                 // 取消 DataGridView1 为只读  
  96.                 DataGridView1.ReadOnly = false;  
  97.                 DataGridView1.DefaultCellStyle.BackColor = Color.White;  
  98.             }  
  99.             else  
  100.             {  
  101.                 // 设置 DataGridView1 为只读  
  102.                 DataGridView1.ReadOnly = true;  
  103.                 DataGridView1.DefaultCellStyle.BackColor = Color.Gainsboro;  
  104.             }  
  105.         }  
  106.   
  107.         private void button6_Click(object sender, EventArgs e)  
  108.         {  
  109.             if (DataGridView1.Columns[1].ReadOnly)  
  110.             {  
  111.                 // 设置 DataGridView1 的第2列整列单元格为只读并变色  
  112.                 DataGridView1.Columns[1].ReadOnly = false;  
  113.                 DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.White;  
  114.                 // 设置 DataGridView1 的第3行整行单元格为只读并变色  
  115.                 DataGridView1.Rows[2].ReadOnly = false;  
  116.                 DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.White;  
  117.                 // 设置 DataGridView1 的[0,0]单元格为只读并变色  
  118.                 DataGridView1[0, 0].ReadOnly = false;  
  119.                 DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.White;   
  120.             }  
  121.             else  
  122.             {  
  123.                 // 设置 DataGridView1 的第2列整列单元格为只读并变色  
  124.                 DataGridView1.Columns[1].ReadOnly = true;  
  125.                 DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.Gainsboro;  
  126.                 // 设置 DataGridView1 的第3行整行单元格为只读并变色  
  127.                 DataGridView1.Rows[2].ReadOnly = true;  
  128.                 DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Gainsboro;  
  129.                 // 设置 DataGridView1 的[0,0]单元格为只读并变色  
  130.                 DataGridView1[0, 0].ReadOnly = true;  
  131.                 DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Gainsboro;   
  132.             }  
  133.         }  
  134.   
  135.         private void button7_Click(object sender, EventArgs e)  
  136.         {  
  137.             if (DataGridView1.EditMode.Equals(DataGridViewEditMode.EditOnEnter))  
  138.             {  
  139.                 DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;  
  140.                 DataGridView1.DefaultCellStyle.BackColor = Color.Red;  
  141.             }  
  142.             else  
  143.             {  
  144.                 DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;  
  145.                 DataGridView1.DefaultCellStyle.BackColor = Color.White;  
  146.             }  
  147.         }  
  148.   
  149.         private void button8_Click(object sender, EventArgs e)  
  150.         {  
  151.             DataGridView1.Rows[DataGridView1.CurrentCell.RowIndex].Cells[DataGridView1.CurrentCell.ColumnIndex].Style.BackColor = Color.White;  
  152.             DataGridView1.BeginEdit(true);  
  153.         }  
  154.   
  155.         private void button9_Click(object sender, EventArgs e)  
  156.         {  
  157.             if (DataGridView1.AllowUserToAddRows)  
  158.             {  
  159.                 // 设置用户不能手动给 DataGridView1 添加新行  
  160.                 DataGridView1.AllowUserToAddRows = false;  
  161.             }  
  162.             else  
  163.             {  
  164.                 // 设置用户可以手动给 DataGridView1 添加新行  
  165.                 DataGridView1.AllowUserToAddRows = true;  
  166.             }  
  167.         }  
  168.   
  169.         private void button10_Click(object sender, EventArgs e)  
  170.         {  
  171.             if (DataGridView1.AllowUserToDeleteRows)  
  172.             {  
  173.                 // 禁止DataGridView1的行删除操作。  
  174.                 DataGridView1.AllowUserToDeleteRows = false;  
  175.                 DataGridView1.DefaultCellStyle.BackColor = Color.Wheat;  
  176.             }  
  177.             else  
  178.             {  
  179.                 // 允许DataGridView1的行删除操作。  
  180.                 DataGridView1.AllowUserToDeleteRows = true;  
  181.                 DataGridView1.DefaultCellStyle.BackColor = Color.White;  
  182.             }  
  183.         }  
  184.   
  185.         private void button11_Click(object sender, EventArgs e)  
  186.         {  
  187.             if (DataGridView1.Columns[0].Visible)  
  188.             {  
  189.                 // DataGridView1的第一列隐藏  
  190.                 DataGridView1.Columns[0].Visible = false;  
  191.                 // DataGridView1的第一行隐藏  
  192.                 DataGridView1.Rows[0].Visible = false;  
  193.             }  
  194.             else  
  195.             {  
  196.                 // DataGridView1的第一列显示  
  197.                 DataGridView1.Columns[0].Visible = true;  
  198.                 // DataGridView1的第一行显示  
  199.                 DataGridView1.Rows[0].Visible = true;  
  200.             }  
  201.         }  
  202.   
  203.         private void button12_Click(object sender, EventArgs e)  
  204.         {  
  205.             if (DataGridView1.ColumnHeadersVisible)  
  206.             {  
  207.                 // 列头隐藏  
  208.                 DataGridView1.ColumnHeadersVisible = false;  
  209.                 // 行头隐藏  
  210.                 DataGridView1.RowHeadersVisible = false;  
  211.             }  
  212.             else  
  213.             {  
  214.                 // 列头显示  
  215.                 DataGridView1.ColumnHeadersVisible = true;  
  216.                 // 行头显示  
  217.                 DataGridView1.RowHeadersVisible = true;  
  218.             }  
  219.         }  
  220.   
  221.         private void button13_Click(object sender, EventArgs e)  
  222.         {  
  223.             // 删除名为"Column1"的列  
  224.             DataGridView1.Columns.Remove("Column1");  
  225.             // 删除第四列  
  226.             DataGridView1.Columns.RemoveAt(2);  
  227.             // 删除第三行  
  228.             DataGridView1.Rows.RemoveAt(2);  
  229.         }  
  230.   
  231.         private void button14_Click(object sender, EventArgs e)  
  232.         {  
  233.             foreach (DataGridViewRow r in DataGridView1.SelectedRows)  
  234.             {  
  235.                 if (!r.IsNewRow)  
  236.                 {  
  237.                     DataGridView1.Rows.Remove(r);  
  238.                 }  
  239.             }  
  240.         }  
  241.   
  242.         private void button15_Click(object sender, EventArgs e)  
  243.         {  
  244.             if (DataGridView1.AllowUserToResizeColumns)  
  245.             {  
  246.                 // 禁止用户改变DataGridView1的所有列的列宽  
  247.                 DataGridView1.AllowUserToResizeColumns = false;  
  248.                 //禁止用户改变DataGridView1的所有行的行高  
  249.                 DataGridView1.AllowUserToResizeRows = false;  
  250.             }  
  251.             else  
  252.             {  
  253.                 // 允许用户改变DataGridView1的所有列的列宽  
  254.                 DataGridView1.AllowUserToResizeColumns = true;  
  255.                 // 允许用户改变DataGridView1的所有行的行高  
  256.                 DataGridView1.AllowUserToResizeRows = true;  
  257.             }  
  258.         }  
  259.   
  260.         private void button16_Click(object sender, EventArgs e)  
  261.         {  
  262.             // 禁止用户改变DataGridView1的第一列的列宽  
  263.             DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;  
  264.             // 禁止用户改变DataGridView1的第一列的行宽  
  265.             DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;  
  266.         }  
  267.   
  268.         private void button17_Click(object sender, EventArgs e)  
  269.         {  
  270.             // 第一列的最小列宽设定为 100  
  271.             DataGridView1.Columns[0].MinimumWidth = 200;  
  272.             // 第一行的最小行高设定为 50  
  273.             DataGridView1.Rows[0].MinimumHeight = 50;  
  274.         }  
  275.   
  276.         private void button18_Click(object sender, EventArgs e)  
  277.         {  
  278.             // 禁止用户改变列头的高度  
  279.             DataGridView1.ColumnHeadersHeightSizeMode =  
  280.             DataGridViewColumnHeadersHeightSizeMode.DisableResizing;  
  281.             // 禁止用户改变行头的宽度  
  282.             DataGridView1.RowHeadersWidthSizeMode =  
  283.             DataGridViewRowHeadersWidthSizeMode.DisableResizing;  
  284.         }  
  285.   
  286.         private void button19_Click(object sender, EventArgs e)  
  287.         {  
  288.             // 设定包括Header和所有单元格的列宽自动调整  
  289.             DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;  
  290.             // 设定包括Header和所有单元格的行高自动调整  
  291.             DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;  
  292.         }  
  293.   
  294.         private void button20_Click(object sender, EventArgs e)  
  295.         {  
  296.             // 第一列自动调整  
  297.             DataGridView1.Columns[0].AutoSizeMode =  
  298.             DataGridViewAutoSizeColumnMode.DisplayedCells;  
  299.         }  
  300.   
  301.         private void button21_Click(object sender, EventArgs e)  
  302.         {  
  303.             // 设定列头的宽度可以自动调整  
  304.             DataGridView1.ColumnHeadersHeightSizeMode =  
  305.             DataGridViewColumnHeadersHeightSizeMode.AutoSize;  
  306.             // 设定行头的宽度可以自动调整  
  307.             DataGridView1.RowHeadersWidthSizeMode =  
  308.             DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;  
  309.         }  
  310.   
  311.         private void button22_Click(object sender, EventArgs e)  
  312.         {  
  313.             // 让 DataGridView1 的所有列宽自动调整一下。  
  314.             DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);  
  315.         }  
  316.   
  317.         private void button23_Click(object sender, EventArgs e)  
  318.         {  
  319.             // 让 DataGridView1 的第三列的列宽自动调整一下。  
  320.             DataGridView1.AutoResizeColumn(2, DataGridViewAutoSizeColumnMode.AllCells);  
  321.         }  
  322.   
  323.         private void button24_Click(object sender, EventArgs e)  
  324.         {  
  325.             // 让 DataGridView1 的所有行高自动调整一下。  
  326.             DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);  
  327.             //让 DataGridView1 的第一行的行高自动调整一下。  
  328.             DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);  
  329.         }  
  330.   
  331.         private void button25_Click(object sender, EventArgs e)  
  332.         {  
  333.             // 列头高度自动调整  
  334.             DataGridView1.AutoResizeColumnHeadersHeight();  
  335.             // 行头宽度自动调整  
  336.             DataGridView1.AutoResizeRowHeadersWidth(  
  337.             DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);  
  338.         }  
  339.   
  340.         private void button26_Click(object sender, EventArgs e)  
  341.         {  
  342.             // DataGridView1的左侧2列固定  
  343.             DataGridView1.Columns[1].Frozen = true;  
  344.             DataGridView1.Columns[2].Width = 800;  
  345.         }  
  346.   
  347.         private void button27_Click(object sender, EventArgs e)  
  348.         {  
  349.             // DataGridView1 的上3行固定  
  350.             DataGridView1.Rows[2].Frozen = true;  
  351.             DataGridView1.Rows[3].Height = 500;  
  352.         }  
  353.   
  354.         private void button28_Click(object sender, EventArgs e)  
  355.         {  
  356.             DataGridView1.AllowUserToOrderColumns = true;  
  357.         }  
  358.   
  359.         private void button29_Click(object sender, EventArgs e)  
  360.         {  
  361.             // 改变DataGridView1的第一列列头内容  
  362.             DataGridView1.Columns[0].HeaderCell.Value = "第一列";  
  363.             // 改变DataGridView1的第一行行头内容  
  364.             DataGridView1.Rows[0].HeaderCell.Value = "第一行";  
  365.             // 改变DataGridView1的左上头部单元内容  
  366.             DataGridView1.TopLeftHeaderCell.Value = "左上";  
  367.   
  368.             // 改变DataGridView1的第二列列头内容  
  369.             DataGridView1.Columns[1].HeaderText = "第二列";  
  370.         }  
  371.   
  372.         private void button30_Click(object sender, EventArgs e)  
  373.         {  
  374.             Clipboard.SetDataObject(DataGridView1.GetClipboardContent());  
  375.         }  
  376.   
  377.         private void button31_Click(object sender, EventArgs e)  
  378.         {  
  379.             //当前单元格是否选择的判断  
  380.             if (DataGridView1.CurrentCell == null)  
  381.             {  
  382.                 return;  
  383.             }  
  384.             int insertRowIndex = DataGridView1.CurrentCell.RowIndex;  
  385.             int insertColumnsIndex = DataGridView1.CurrentCell.ColumnIndex;  
  386.             // 获取剪切板的内容,并按行分割  
  387.             string pasteText = Clipboard.GetText();  
  388.             if (string.IsNullOrEmpty(pasteText))  
  389.             {  
  390.                 return;  
  391.             }  
  392.             pasteText = pasteText.Replace(" "" ");  
  393.             pasteText = pasteText.Replace(' '' ');  
  394.             pasteText.TrimEnd(new char[] { ' ' });  
  395.             string[] lines = pasteText.Split(' ');  
  396.             bool isHeader = false;  
  397.             foreach (string line in lines)  
  398.             {  
  399.                 // 是否是列头  
  400.                 if (isHeader)  
  401.                 {  
  402.                     isHeader = false;  
  403.                     continue;  
  404.                 }  
  405.                 // 按 Tab 分割数据  
  406.                 string[] vals = line.Split(' ');  
  407.                 DataGridViewRow row = DataGridView1.Rows[insertRowIndex];  
  408.                 // 行头设定  
  409.                 //row.HeaderCell.Value = vals[0];  
  410.                 // 单元格内容设定  
  411.                 for (int i = 0; i < vals.Length; i++)  
  412.                 {  
  413.                     row.Cells[insertColumnsIndex].Value = vals[i];  
  414.                 }  
  415.                 // DataGridView的行索引+1  
  416.                 insertRowIndex++;  
  417.             }  
  418.         }  
  419.   
  420.         private void button32_Click(object sender, EventArgs e)  
  421.         {  
  422.             // 设定单元格的ToolTip内容  
  423.             DataGridView1[0, 0].ToolTipText = "该单元格的内容不能修改";  
  424.             // 设定列头的单元格的ToolTip内容  
  425.             DataGridView1.Columns[0].ToolTipText = "该列只能输入数字";  
  426.             // 设定行头的单元格的ToolTip内容  
  427.             DataGridView1.Rows[0].HeaderCell.ToolTipText = "该行单元格内容不能修改";  
  428.   
  429.             DataGridView1.VirtualMode = false;  
  430.             DataGridView1.ShowCellToolTips = true;  
  431.               
  432.         }  
  433.   
  434.         private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)  
  435.         {  
  436.             MessageBox.Show(e.ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString());  
  437.   
  438.         }  
  439.   
  440.         private void button33_Click(object sender, EventArgs e)  
  441.         {  
  442.             // DataGridView 的 ContextMenuStrip 设定  
  443.             DataGridView1.ContextMenuStrip = this.ContextMenuStrip1;  
  444.             // 列的 ContextMenuStrip 设定  
  445.             DataGridView1.Columns[0].ContextMenuStrip = this.ContextMenuStrip2;  
  446.             // 列头的 ContextMenuStrip 设定  
  447.             DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2;  
  448.             // 行的 ContextMenuStrip 设定  
  449.             DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3;  
  450.             // 单元格的 ContextMenuStrip 设定  
  451.             DataGridView1[0, 0].ContextMenuStrip = this.ContextMenuStrip4;  
  452.         }  
  453.   
  454.         private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)  
  455.         {  
  456.             DataGridView dgv = (DataGridView)sender;  
  457.             if (e.RowIndex < 0)  
  458.             {  
  459.                 // 列头的ContextMenuStrip设定  
  460.                 e.ContextMenuStrip = this.ContextMenuStrip1;  
  461.             }  
  462.             else if (e.ColumnIndex < 0)  
  463.             {  
  464.                 // 行头的ContextMenuStrip设定  
  465.                 e.ContextMenuStrip = this.ContextMenuStrip2;  
  466.             }  
  467.             else if (dgv[e.ColumnIndex, e.RowIndex].Value is int)  
  468.             {  
  469.                 // 如果单元格值是整数时  
  470.                 e.ContextMenuStrip = this.ContextMenuStrip3;  
  471.             }  
  472.         }  
  473.   
  474.         private void DataGridView1_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)  
  475.         {  
  476.             DataGridView dgv = (DataGridView)sender;  
  477.             // 当"Column1"列是Bool型且为True时、设定其的ContextMenuStrip  
  478.             object boolVal = dgv["Column1", e.RowIndex].Value;  
  479.             Console.WriteLine(boolVal);  
  480.             if (boolVal is bool && (bool)boolVal)  
  481.             {  
  482.                 e.ContextMenuStrip = this.ContextMenuStrip1;  
  483.             }  
  484.         }  
  485.   
  486.         private void button34_Click(object sender, EventArgs e)  
  487.         {  
  488.             DataGridView1.BorderStyle = BorderStyle.None;  
  489.         }  
  490.   
  491.         private void button35_Click(object sender, EventArgs e)  
  492.         {  
  493.             DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SunkenVertical;  
  494.         }  
  495.   
  496.         private void button36_Click(object sender, EventArgs e)  
  497.         {  
  498.             DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken;  
  499.         }  
  500.   
  501.         private void button37_Click(object sender, EventArgs e)  
  502.         {  
  503.             DataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;  
  504.         }  
  505.   
  506.         private void button38_Click(object sender, EventArgs e)  
  507.         {  
  508.             DataGridView1.GridColor = Color.Red;  
  509.         }  
  510.   
  511.         private void button40_Click(object sender, EventArgs e)  
  512.         {  
  513.             //foreach (Control c in this.Controls)  
  514.             //{  
  515.             //    c.Dispose();    //如果有Panel等窗口的话,还得将子控件给 Dispose掉  
  516.             //}  
  517.   
  518.             DataGridView1.Dispose();  
  519.               
  520.             InitializeComponent();  
  521.             dgvLoad();  
  522.         }  
  523.   
  524.         private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)  
  525.         {  
  526.             DataGridView dgv = (DataGridView)sender;  
  527.             // 如果单元格是“Column1”列的单元格  
  528.             if (e.ColumnIndex < 0)  
  529.             {  
  530.                 return;  
  531.             }  
  532.             if (dgv.Columns[e.ColumnIndex].Name == "Column1" && e.Value is string)  
  533.             {  
  534.                 // 将单元格值改为大写  
  535.                 string str = e.Value.ToString();  
  536.                 e.Value = str.ToUpper();  
  537.                 // 应用该Format,Format完毕。  
  538.                 e.FormattingApplied = true;  
  539.             }  
  540.         }  
  541.   
  542.         private void DataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)  
  543.         {  
  544.             DataGridView dgv = (DataGridView)sender;  
  545.             //单元格列为“Column2”时  
  546.             if (dgv.Columns[e.ColumnIndex].Name == "Column2" && e.Value is string)  
  547.             {  
  548.                 //将单元格值设为大写  
  549.                 e.Value = e.Value.ToString().ToUpper();  
  550.                 //解析完毕  
  551.                 e.ParsingApplied = true;  
  552.             }  
  553.         }  
  554.   
  555.         private void DataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)  
  556.         {  
  557.             // 设定单元格的默认值  
  558.             e.Row.Cells["Column1"].Value = "我";  
  559.             e.Row.Cells["Column2"].Value = "是";  
  560.             e.Row.Cells["Column3"].Value = "默";  
  561.             e.Row.Cells["Column4"].Value = "认";  
  562.             e.Row.Cells["Column5"].Value = "值";  
  563.         }  
  564.   
  565.         private void DataGridView1_CellErrorTextNeeded(object sender, DataGridViewCellErrorTextNeededEventArgs e)  
  566.         {  
  567.             DataGridView dgv = (DataGridView)sender;  
  568.             // 单元格值为负整数时,Error图标被表示。  
  569.             object cellVal = dgv[e.ColumnIndex, e.RowIndex].Value;  
  570.             if (cellVal is int && ((int)cellVal) < 0)  
  571.             {  
  572.                 e.ErrorText = "不能输入负整数。";  
  573.             }  
  574.         }  
  575.   
  576.         private void DataGridView1_RowErrorTextNeeded(object sender, DataGridViewRowErrorTextNeededEventArgs e)  
  577.         {  
  578.             DataGridView dgv = (DataGridView)sender;  
  579.             if (dgv["Column1", e.RowIndex].Value == DBNull.Value &&  
  580.             dgv["Column2", e.RowIndex].Value == DBNull.Value)  
  581.             {  
  582.                 e.ErrorText =  
  583.                 "Column1和Column2必须输入一个值。";  
  584.             }  
  585.         }  
  586.   
  587.         private void DataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)  
  588.         {  
  589.             DataGridView dgv = (DataGridView)sender;  
  590.   
  591.             if (dgv.Columns[e.ColumnIndex].Name == "Column4" && e.FormattedValue.ToString() == "")  
  592.             {  
  593.                 //行的错误提示的设定  
  594.                 dgv.Rows[e.RowIndex].ErrorText = "值未输入。";  
  595.                 //取消已经输入的内容,还原成上次的输入内容。  
  596.                 //dgv.CancelEdit()  
  597.                 //取消之后的动作  
  598.                 e.Cancel = true;  
  599.             }  
  600.         }  
  601.   
  602.         private void DataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)  
  603.         {  
  604.             DataGridView dgv = (DataGridView)sender;  
  605.             //验证通过的话,则清空行的错误提示  
  606.             dgv.Rows[e.RowIndex].ErrorText = null;  
  607.         }  
  608.   
  609.           
  610.     }  

来源:http://heisetoufa.iteye.com/blog/405317


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值