zoukankan      html  css  js  c++  java
  • C# GridView 操作汇总

    GridView 操作汇总
    1、自定义列
        Customize Cells and Columns in the Windows Forms DataGridView Control by Extending Their
         Behavior and Appearance
         Host Controls in Windows Forms DataGridView Cells
         继承 DataGridViewTextBoxCell 类生成新的Cell类,然后再继承 DataGridViewColumn 生成新的Column类,并指定
         CellTemplate为新的Cell类。新生成的Column便可以增加到DataGridView中去。
    2、自动适应列宽
        Programmatically Resize Cells to Fit Content in the Windows Forms DataGridView Control
         Samples:
         DataGridView.AutoSizeColumns(
                DataGridViewAutoSizeColumnCriteria.HeaderAndDisplayedRows);
         DataGridView.AutoSizeColumn(
                     DataGridViewAutoSizeColumnCriteria.HeaderOnly,
                     2, false);
         DataGridView.AutoSizeRow(
                     DataGridViewAutoSizeRowCriteria.Columns,
                     2, false);
         DataGridView.AutoSizeRows(
                   DataGridViewAutoSizeRowCriteria.HeaderAndColumns,
                     0, dataGridView1.Rows.Count, false);
    3、可以绑定并显示对象
        Bind Objects to Windows Forms DataGridView Controls
    4、可以改变表格线条风格
        Change the Border and Gridline Styles in the Windows Forms DataGridView Control
         Samples:
         this.dataGridView1.GridColor = Color.BlueViolet;
         this.dataGridView1.BorderStyle = BorderStyle.Fixed3D;
         this.dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None;
         this.dataGridView1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
         this.dataGridView1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
    5、动态改变列是否显示,和动态改变列的显示顺序
        Change the Order of the Columns in the Windows Forms DataGridView Control
         Samples:
         customersDataGridView.Columns["CustomerID"].Visible = false;
         customersDataGridView.Columns["ContactName"].DisplayIndex = 0;
         customersDataGridView.Columns["ContactTitle"].DisplayIndex = 1;
         customersDataGridView.Columns["City"].DisplayIndex = 2;
         customersDataGridView.Columns["Country"].DisplayIndex = 3;
         customersDataGridView.Columns["CompanyName"].DisplayIndex = 4;
    6、可以在列中显示图像
         Display Images in Cells of the Windows Forms DataGridView Control
         Samples:
                 Icon treeIcon = new Icon(this.GetType(), "tree.ico");
                DataGridViewImageColumn iconColumn = new DataGridViewImageColumn ();
                iconColumn.Image = treeIcon.ToBitmap();
                iconColumn.Name = "Tree";
                iconColumn.HeaderText = "Nice tree";
                dataGridView1.Columns.Insert(2, iconColumn);
    7、格式化显示内容:
        Format Data in the Windows Forms DataGridView Control
         Samples:
         this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
         this.dataGridView1.Columns["ShipDate"].DefaultCellStyle.Format = "d";
         this.dataGridView1.DefaultCellStyle.NullValue = "no entry";
         this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewWrapMode.Wrap;
         this.dataGridView1.Columns["CustomerName"].DefaultCellStyle.Alignment =
                              DataGridViewContentAlignment.MiddleRight;    
    8、在拖动列的滚动条时可以将指定的列冻结
         Freeze Columns in the Windows Forms DataGridView Control
         Samples:将指定列及以前的列固定不动
         this.dataGridView1.Columns["AddToCartButton"].Frozen = true;
    9、获取选择的单元格,行,列
         Get the Selected Cells, Rows, and Columns in the Windows Forms DataGridView Control
         Samples:
            见msdn。
    10、显示录入时出现的错误信息
        Handle Errors that Occur During Data Entry in the Windows Forms DataGridView Control
         Samples:
         private void dataGridView1_DataError(object sender,
             DataGridViewDataErrorEventArgs e)
             {
             // If the data source raises an exception when a cell value is
             // commited, display an error message.
             if (e.Exception != null &&
                 e.Context == DataGridViewDataErrorContext.Commit)
             {
                 MessageBox.Show("CustomerID value must be unique.");
             }
             }
    11、大数据量显示采用Virtual Mode
         Implement Virtual Mode in the Windows Forms DataGridView Control
    12、设置指定的列只读
        Make Columns in the Windows Forms DataGridView Control Read-Only
         Samples:
         dataGridView1.Columns["CompanyName"].ReadOnly = true;
    13、移去自动生成的列
         Remove Autogenerated Columns from a Windows Forms DataGridView Control
         Sample:
         dataGridView1.AutoGenerateColumns = true;
         dataGridView1.DataSource = customerDataSet;
         dataGridView1.Columns.Remove ("Fax");
         或:
         dataGridView1.Columns["CustomerID"].Visible = false;
    14、自定义选择模式
        Set the Selection Mode of the Windows Forms DataGridView Control
         Sample:
         this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
         this.dataGridView1.MultiSelect = false;
    15、自定义设定光标进入单元格是否编辑模式(编辑模式)
         Specify the Edit Mode for the Windows Forms DataGridView Control
         this.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
    16、新行指定默认值
        Specify Default Values for New Rows in the Windows Forms DataGridView Control
         Sample:
         private void dataGridView1_DefaultValuesNeeded(object sender,                        System.Windows.Forms.DataGridViewRowEventArgs e)
         {
           e.Row.Cells["Region"].Value = "WA";
            e.Row.Cells["City"].Value = "Redmond";
            e.Row.Cells["PostalCode"].Value = "98052-6399";
           e.Row.Cells["Region"].Value = "NA";
           e.Row.Cells["Country"].Value = "USA";
         e.Row.Cells["CustomerID"].Value = NewCustomerId();
         }
    17、数据验证
        Validate Data in the Windows Forms DataGridView Control
         Samples:
          private void dataGridView1_CellValidating(object sender,
                 DataGridViewCellValidatingEventArgs e)
             {
             // Validate the CompanyName entry by disallowing empty strings.
             if (dataGridView1.Columns[e.ColumnIndex].Name == "CompanyName")
             {
                 if (e.FormattedValue.ToString() == String.Empty)
                 {
                     dataGridView1.Rows[e.RowIndex].ErrorText =
                         "Company Name must not be empty";
                     e.Cancel = true;
                 }
             }
             }
  • 相关阅读:
    删除数据库时报错 ERROR 1010 (HY000): Error dropping database (can't rmdir './cart', errno: 39)
    多线程异步操作导致异步线程获取不到主线程的request信息
    使用mybatis更新数据时 时间字段的值自动更新
    mysql死锁com.mysql.cj.jdbc.exception.MYSQLTransactionRollbackException Deadlock found when trying to get lock;try restarting transaction
    mysql 执行报错:Error querying database. Cause: java.sql.SQLSyntaxErrorException:which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    Linux系统下部署eleasticsearch+kibana
    navicat突然连接不上远程linux服务器上的mysql
    即使是一条咸鱼,也要做最咸的那条
    linux环境下安装jdk,tomcat
    SpringBoot如何内置Tomcat
  • 原文地址:https://www.cnblogs.com/chenbg2001/p/1504581.html
Copyright © 2011-2022 走看看