DatagridView 操作

    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;     
        
            
    using System.IO;       
    using System.Data.OleDb;      
        
    namespace TestMouseMove     
    {     
        public partial class Form3 : Form     
        {     
            public Form3()     
            {     
                InitializeComponent();     
                dgvLoad();     
            }     
        
            public void dgvLoad()     
            {     
                this.DataGridView1.Columns[0].HeaderCell.Value = "姓名";     
                this.DataGridView1.Columns[1].HeaderCell.Value = "字段2";     
                this.DataGridView1.Columns[2].HeaderCell.Value = "字段3";     
                this.DataGridView1.Columns[3].HeaderCell.Value = "字段4";     
                this.DataGridView1.Columns[4].HeaderCell.Value = "字段5";     
        
                this.DataGridView1.Rows.Add("黑色头发", "1行2列", "1行3列", "1行4列", "1行5列");     
                this.DataGridView1.Rows.Add("紫色头发", "2行2列aaaa", "2行3列", "2行4列", "2行5列");     
                this.DataGridView1.Rows.Add("蓝色头发", "3行2列", "3行3列", "3行4列", "3行5列");     
                this.DataGridView1.Rows.Add("红色头发", "4行2列", "4行3列", "4行4列", "4行5列");     
                this.DataGridView1.Rows.Add("棕色头发", "5行2列", "5行3列", "5行4列", "5行5列");     
        
                DataGridView1.ShowCellErrors = true;     
                //设定 (0, 0) 的单元格表示 Error图标     
                DataGridView1[3, 3].ErrorText = "这是单元格提示错误信息,也可以再行头显示这个错误提示信息";     
        
                //设定第4行(Index=3)的行头显示Error图标     
                //DataGridView1.Rows[0].ErrorText = "不能输入负值。";     
            }     
        
            private void button1_Click(object sender, EventArgs e)     
            {     
                // 设定 (1, 2) 为当前单元格     
                DataGridView1.CurrentCell = DataGridView1[1, 2];                 
            }     
        
            private void button2_Click(object sender, EventArgs e)     
            {     
                // 取得当前单元格内容     
                MessageBox.Show(DataGridView1.CurrentCell.Value.ToString());     
                // 取得当前单元格的列 Index     
                MessageBox.Show(DataGridView1.CurrentCell.ColumnIndex.ToString());     
                // 取得当前单元格的行 Index     
                MessageBox.Show(DataGridView1.CurrentCell.RowIndex.ToString());     
            }     
        
            /// <summary>     
            /// 向下遍历     
            /// </summary>     
            /// <param name="sender"></param>     
            /// <param name="e"></param>     
            private void button3_Click(object sender, EventArgs e)     
            {     
                int row = this.DataGridView1.CurrentRow.Index + 1;     
                if (row > this.DataGridView1.RowCount - 1)     
                    row = 0;     
                this.DataGridView1.CurrentCell = this.DataGridView1[0, row];     
            }     
        
            /// <summary>     
            /// 向上遍历     
            /// </summary>     
            /// <param name="sender"></param>     
            /// <param name="e"></param>     
            private void button4_Click(object sender, EventArgs e)     
            {     
                int row = this.DataGridView1.CurrentRow.Index - 1;     
                if (row < 0)     
                    row = this.DataGridView1.RowCount - 1;     
                this.DataGridView1.CurrentCell = this.DataGridView1[0, row];     
            }     
        
            private void button5_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.ReadOnly)     
                {     
                    // 取消 DataGridView1 为只读     
                    DataGridView1.ReadOnly = false;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.White;     
                }     
                else    
                {     
                    // 设置 DataGridView1 为只读     
                    DataGridView1.ReadOnly = true;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.Gainsboro;     
                }     
            }     
        
            private void button6_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.Columns[1].ReadOnly)     
                {     
                    // 设置 DataGridView1 的第2列整列单元格为只读并变色     
                    DataGridView1.Columns[1].ReadOnly = false;     
                    DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.White;     
                    // 设置 DataGridView1 的第3行整行单元格为只读并变色     
                    DataGridView1.Rows[2].ReadOnly = false;     
                    DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.White;     
                    // 设置 DataGridView1 的[0,0]单元格为只读并变色     
                    DataGridView1[0, 0].ReadOnly = false;     
                    DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.White;      
                }     
                else    
                {     
                    // 设置 DataGridView1 的第2列整列单元格为只读并变色     
                    DataGridView1.Columns[1].ReadOnly = true;     
                    DataGridView1.Columns[1].DefaultCellStyle.BackColor = Color.Gainsboro;     
                    // 设置 DataGridView1 的第3行整行单元格为只读并变色     
                    DataGridView1.Rows[2].ReadOnly = true;     
                    DataGridView1.Rows[2].DefaultCellStyle.BackColor = Color.Gainsboro;     
                    // 设置 DataGridView1 的[0,0]单元格为只读并变色     
                    DataGridView1[0, 0].ReadOnly = true;     
                    DataGridView1.Rows[0].Cells[0].Style.BackColor = Color.Gainsboro;      
                }     
            }     
        
            private void button7_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.EditMode.Equals(DataGridViewEditMode.EditOnEnter))     
                {     
                    DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.Red;     
                }     
                else    
                {     
                    DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.White;     
                }     
            }     
        
            private void button8_Click(object sender, EventArgs e)     
            {     
                DataGridView1.Rows[DataGridView1.CurrentCell.RowIndex].Cells[DataGridView1.CurrentCell.ColumnIndex].Style.BackColor = Color.White;     
                DataGridView1.BeginEdit(true);     
            }     
        
            private void button9_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.AllowUserToAddRows)     
                {     
                    // 设置用户不能手动给 DataGridView1 添加新行     
                    DataGridView1.AllowUserToAddRows = false;     
                }     
                else    
                {     
                    // 设置用户可以手动给 DataGridView1 添加新行     
                    DataGridView1.AllowUserToAddRows = true;     
                }     
            }     
        
            private void button10_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.AllowUserToDeleteRows)     
                {     
                    // 禁止DataGridView1的行删除操作。     
                    DataGridView1.AllowUserToDeleteRows = false;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.Wheat;     
                }     
                else    
                {     
                    // 允许DataGridView1的行删除操作。     
                    DataGridView1.AllowUserToDeleteRows = true;     
                    DataGridView1.DefaultCellStyle.BackColor = Color.White;     
                }     
            }     
        
            private void button11_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.Columns[0].Visible)     
                {     
                    // DataGridView1的第一列隐藏     
                    DataGridView1.Columns[0].Visible = false;     
                    // DataGridView1的第一行隐藏     
                    DataGridView1.Rows[0].Visible = false;     
                }     
                else    
                {     
                    // DataGridView1的第一列显示     
                    DataGridView1.Columns[0].Visible = true;     
                    // DataGridView1的第一行显示     
                    DataGridView1.Rows[0].Visible = true;     
                }     
            }     
        
            private void button12_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.ColumnHeadersVisible)     
                {     
                    // 列头隐藏     
                    DataGridView1.ColumnHeadersVisible = false;     
                    // 行头隐藏     
                    DataGridView1.RowHeadersVisible = false;     
                }     
                else    
                {     
                    // 列头显示     
                    DataGridView1.ColumnHeadersVisible = true;     
                    // 行头显示     
                    DataGridView1.RowHeadersVisible = true;     
                }     
            }     
        
            private void button13_Click(object sender, EventArgs e)     
            {     
                // 删除名为"Column1"的列     
                DataGridView1.Columns.Remove("Column1");     
                // 删除第四列     
                DataGridView1.Columns.RemoveAt(2);     
                // 删除第三行     
                DataGridView1.Rows.RemoveAt(2);     
            }     
        
            private void button14_Click(object sender, EventArgs e)     
            {     
                foreach (DataGridViewRow r in DataGridView1.SelectedRows)     
                {     
                    if (!r.IsNewRow)     
                    {     
                        DataGridView1.Rows.Remove(r);     
                    }     
                }     
            }     
        
            private void button15_Click(object sender, EventArgs e)     
            {     
                if (DataGridView1.AllowUserToResizeColumns)     
                {     
                    // 禁止用户改变DataGridView1的所有列的列宽     
                    DataGridView1.AllowUserToResizeColumns = false;     
                    //禁止用户改变DataGridView1的所有行的行高     
                    DataGridView1.AllowUserToResizeRows = false;     
                }     
                else    
                {     
                    // 允许用户改变DataGridView1的所有列的列宽     
                    DataGridView1.AllowUserToResizeColumns = true;     
                    // 允许用户改变DataGridView1的所有行的行高     
                    DataGridView1.AllowUserToResizeRows = true;     
                }     
            }     
        
            private void button16_Click(object sender, EventArgs e)     
            {     
                // 禁止用户改变DataGridView1的第一列的列宽     
                DataGridView1.Columns[0].Resizable = DataGridViewTriState.False;     
                // 禁止用户改变DataGridView1的第一列的行宽     
                DataGridView1.Rows[0].Resizable = DataGridViewTriState.False;     
            }     
        
            private void button17_Click(object sender, EventArgs e)     
            {     
                // 第一列的最小列宽设定为 100     
                DataGridView1.Columns[0].MinimumWidth = 200;     
                // 第一行的最小行高设定为 50     
                DataGridView1.Rows[0].MinimumHeight = 50;     
            }     
        
            private void button18_Click(object sender, EventArgs e)     
            {     
                // 禁止用户改变列头的高度     
                DataGridView1.ColumnHeadersHeightSizeMode =     
                DataGridViewColumnHeadersHeightSizeMode.DisableResizing;     
                // 禁止用户改变行头的宽度     
                DataGridView1.RowHeadersWidthSizeMode =     
                DataGridViewRowHeadersWidthSizeMode.DisableResizing;     
            }     
        
            private void button19_Click(object sender, EventArgs e)     
            {     
                // 设定包括Header和所有单元格的列宽自动调整     
                DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;     
                // 设定包括Header和所有单元格的行高自动调整     
                DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;     
            }     
        
            private void button20_Click(object sender, EventArgs e)     
            {     
                // 第一列自动调整     
                DataGridView1.Columns[0].AutoSizeMode =     
                DataGridViewAutoSizeColumnMode.DisplayedCells;     
            }     
        
            private void button21_Click(object sender, EventArgs e)     
            {     
                // 设定列头的宽度可以自动调整     
                DataGridView1.ColumnHeadersHeightSizeMode =     
                DataGridViewColumnHeadersHeightSizeMode.AutoSize;     
                // 设定行头的宽度可以自动调整     
                DataGridView1.RowHeadersWidthSizeMode =     
                DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;     
            }     
        
            private void button22_Click(object sender, EventArgs e)     
            {     
                // 让 DataGridView1 的所有列宽自动调整一下。     
                DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);     
            }     
        
            private void button23_Click(object sender, EventArgs e)     
            {     
                // 让 DataGridView1 的第三列的列宽自动调整一下。     
                DataGridView1.AutoResizeColumn(2, DataGridViewAutoSizeColumnMode.AllCells);     
            }     
        
            private void button24_Click(object sender, EventArgs e)     
            {     
                // 让 DataGridView1 的所有行高自动调整一下。     
                DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);     
                //让 DataGridView1 的第一行的行高自动调整一下。     
                DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);     
            }     
        
            private void button25_Click(object sender, EventArgs e)     
            {     
                // 列头高度自动调整     
                DataGridView1.AutoResizeColumnHeadersHeight();     
                // 行头宽度自动调整     
                DataGridView1.AutoResizeRowHeadersWidth(     
                DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);     
            }     
        
            private void button26_Click(object sender, EventArgs e)     
            {     
                // DataGridView1的左侧2列固定     
                DataGridView1.Columns[1].Frozen = true;     
                DataGridView1.Columns[2].Width = 800;     
            }     
        
            private void button27_Click(object sender, EventArgs e)     
            {     
                // DataGridView1 的上3行固定     
                DataGridView1.Rows[2].Frozen = true;     
                DataGridView1.Rows[3].Height = 500;     
            }     
        
            private void button28_Click(object sender, EventArgs e)     
            {     
                DataGridView1.AllowUserToOrderColumns = true;     
            }     
        
            private void button29_Click(object sender, EventArgs e)     
            {     
                // 改变DataGridView1的第一列列头内容     
                DataGridView1.Columns[0].HeaderCell.Value = "第一列";     
                // 改变DataGridView1的第一行行头内容     
                DataGridView1.Rows[0].HeaderCell.Value = "第一行";     
                // 改变DataGridView1的左上头部单元内容     
                DataGridView1.TopLeftHeaderCell.Value = "左上";     
        
                // 改变DataGridView1的第二列列头内容     
                DataGridView1.Columns[1].HeaderText = "第二列";     
            }     
        
            private void button30_Click(object sender, EventArgs e)     
            {     
                Clipboard.SetDataObject(DataGridView1.GetClipboardContent());     
            }     
        
            private void button31_Click(object sender, EventArgs e)     
            {     
                //当前单元格是否选择的判断     
                if (DataGridView1.CurrentCell == null)     
                {     
                    return;     
                }     
                int insertRowIndex = DataGridView1.CurrentCell.RowIndex;     
                int insertColumnsIndex = DataGridView1.CurrentCell.ColumnIndex;     
                // 获取剪切板的内容,并按行分割     
                string pasteText = Clipboard.GetText();     
                if (string.IsNullOrEmpty(pasteText))     
                {     
                    return;     
                }     
                pasteText = pasteText.Replace(" ", " ");     
                pasteText = pasteText.Replace(' ', ' ');     
                pasteText.TrimEnd(new char[] { ' ' });     
                string[] lines = pasteText.Split(' ');     
                bool isHeader = false;     
                foreach (string line in lines)     
                {     
                    // 是否是列头     
                    if (isHeader)     
                    {     
                        isHeader = false;     
                        continue;     
                    }     
                    // 按 Tab 分割数据     
                    string[] vals = line.Split(' ');     
                    DataGridViewRow row = DataGridView1.Rows[insertRowIndex];     
                    // 行头设定     
                    //row.HeaderCell.Value = vals[0];     
                    // 单元格内容设定     
                    for (int i = 0; i < vals.Length; i++)     
                    {     
                        row.Cells[insertColumnsIndex].Value = vals[i];     
                    }     
                    // DataGridView的行索引+1     
                    insertRowIndex++;     
                }     
            }     
        
            private void button32_Click(object sender, EventArgs e)     
            {     
                // 设定单元格的ToolTip内容     
                DataGridView1[0, 0].ToolTipText = "该单元格的内容不能修改";     
                // 设定列头的单元格的ToolTip内容     
                DataGridView1.Columns[0].ToolTipText = "该列只能输入数字";     
                // 设定行头的单元格的ToolTip内容     
                DataGridView1.Rows[0].HeaderCell.ToolTipText = "该行单元格内容不能修改";     
        
                DataGridView1.VirtualMode = false;     
                DataGridView1.ShowCellToolTips = true;     
                     
            }     
        
            private void DataGridView1_CellToolTipTextNeeded(object sender, DataGridViewCellToolTipTextNeededEventArgs e)     
            {     
                MessageBox.Show(e.ToolTipText = e.ColumnIndex.ToString() + ", " + e.RowIndex.ToString());     
        
            }     
        
            private void button33_Click(object sender, EventArgs e)     
            {     
                // DataGridView 的 ContextMenuStrip 设定     
                DataGridView1.ContextMenuStrip = this.ContextMenuStrip1;     
                // 列的 ContextMenuStrip 设定     
                DataGridView1.Columns[0].ContextMenuStrip = this.ContextMenuStrip2;     
                // 列头的 ContextMenuStrip 设定     
                DataGridView1.Columns[0].HeaderCell.ContextMenuStrip = this.ContextMenuStrip2;     
                // 行的 ContextMenuStrip 设定     
                DataGridView1.Rows[0].ContextMenuStrip = this.ContextMenuStrip3;     
                // 单元格的 ContextMenuStrip 设定     
                DataGridView1[0, 0].ContextMenuStrip = this.ContextMenuStrip4;     
            }     
        
            private void DataGridView1_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                if (e.RowIndex < 0)     
                {     
                    // 列头的ContextMenuStrip设定     
                    e.ContextMenuStrip = this.ContextMenuStrip1;     
                }     
                else if (e.ColumnIndex < 0)     
                {     
                    // 行头的ContextMenuStrip设定     
                    e.ContextMenuStrip = this.ContextMenuStrip2;     
                }     
                else if (dgv[e.ColumnIndex, e.RowIndex].Value is int)     
                {     
                    // 如果单元格值是整数时     
                    e.ContextMenuStrip = this.ContextMenuStrip3;     
                }     
            }     
        
            private void DataGridView1_RowContextMenuStripNeeded(object sender, DataGridViewRowContextMenuStripNeededEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                // 当"Column1"列是Bool型且为True时、设定其的ContextMenuStrip     
                object boolVal = dgv["Column1", e.RowIndex].Value;     
                Console.WriteLine(boolVal);     
                if (boolVal is bool && (bool)boolVal)     
                {     
                    e.ContextMenuStrip = this.ContextMenuStrip1;     
                }     
            }     
        
            private void button34_Click(object sender, EventArgs e)     
            {     
                DataGridView1.BorderStyle = BorderStyle.None;     
            }     
        
            private void button35_Click(object sender, EventArgs e)     
            {     
                DataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.SunkenVertical;     
            }     
        
            private void button36_Click(object sender, EventArgs e)     
            {     
                DataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken;     
            }     
        
            private void button37_Click(object sender, EventArgs e)     
            {     
                DataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;     
            }     
        
            private void button38_Click(object sender, EventArgs e)     
            {     
                DataGridView1.GridColor = Color.Red;     
            }     
        
            private void button40_Click(object sender, EventArgs e)     
            {     
                //foreach (Control c in this.Controls)     
                //{     
                //    c.Dispose();    //如果有Panel等窗口的话,还得将子控件给 Dispose掉     
                //}     
        
                DataGridView1.Dispose();     
                     
                InitializeComponent();     
                dgvLoad();     
            }     
        
            private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                // 如果单元格是“Column1”列的单元格     
                if (e.ColumnIndex < 0)     
                {     
                    return;     
                }     
                if (dgv.Columns[e.ColumnIndex].Name == "Column1" && e.Value is string)     
                {     
                    // 将单元格值改为大写     
                    string str = e.Value.ToString();     
                    e.Value = str.ToUpper();     
                    // 应用该Format,Format完毕。     
                    e.FormattingApplied = true;     
                }     
            }     
        
            private void DataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                //单元格列为“Column2”时     
                if (dgv.Columns[e.ColumnIndex].Name == "Column2" && e.Value is string)     
                {     
                    //将单元格值设为大写     
                    e.Value = e.Value.ToString().ToUpper();     
                    //解析完毕     
                    e.ParsingApplied = true;     
                }     
            }     
        
            private void DataGridView1_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)     
            {     
                // 设定单元格的默认值     
                e.Row.Cells["Column1"].Value = "我";     
                e.Row.Cells["Column2"].Value = "是";     
                e.Row.Cells["Column3"].Value = "默";     
                e.Row.Cells["Column4"].Value = "认";     
                e.Row.Cells["Column5"].Value = "值";     
            }     
        
            private void DataGridView1_CellErrorTextNeeded(object sender, DataGridViewCellErrorTextNeededEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                // 单元格值为负整数时,Error图标被表示。     
                object cellVal = dgv[e.ColumnIndex, e.RowIndex].Value;     
                if (cellVal is int && ((int)cellVal) < 0)     
                {     
                    e.ErrorText = "不能输入负整数。";     
                }     
            }     
        
            private void DataGridView1_RowErrorTextNeeded(object sender, DataGridViewRowErrorTextNeededEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                if (dgv["Column1", e.RowIndex].Value == DBNull.Value &&     
                dgv["Column2", e.RowIndex].Value == DBNull.Value)     
                {     
                    e.ErrorText =     
                    "Column1和Column2必须输入一个值。";     
                }     
            }     
        
            private void DataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
        
                if (dgv.Columns[e.ColumnIndex].Name == "Column4" && e.FormattedValue.ToString() == "")     
                {     
                    //行的错误提示的设定     
                    dgv.Rows[e.RowIndex].ErrorText = "值未输入。";     
                    //取消已经输入的内容,还原成上次的输入内容。     
                    //dgv.CancelEdit()     
                    //取消之后的动作     
                    e.Cancel = true;     
                }     
            }     
        
            private void DataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)     
            {     
                DataGridView dgv = (DataGridView)sender;     
                //验证通过的话,则清空行的错误提示     
                dgv.Rows[e.RowIndex].ErrorText = null;     
            }     
        
                 
        }     
    }    


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值