解讀C#中對DatagridView的部分常用操作_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:怎樣實現MSMQ的消息加密
      消息加密的工作原理 消息應用程序發送方對消息進行加密后發送到目標計算機的消息隊列中,然后由目標計算機上的應用程序接收消息隊列中的消息進行解密。消息加密旨在防止在傳輸過程中有人未經授權查看消息。 使用消息加密會降低性能,不過這沒有使用消息驗證

      dbfC#DataGridView中的常用技巧
      只列出技巧部分,后面會有補充
      0(最基本的技巧). 獲取某列中的某行(某單元格)中的內容
      this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position;
      bookContent = this.database.dataSet.Tables[0].Rows [this.currentposition][21].ToString().Trim();
      MessageBox.Show(bookContent);


      1、自定義列

      //定義列寬
      this.dataGridView1.Columns[0].Width = 80;
      this.dataGridView1.Columns[1].Width = 80;
      this.dataGridView1.Columns[2].Width = 180;
      this.dataGridView1.Columns[3].Width = 120;
      this.dataGridView1.Columns[4].Width = 120;


      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;
      }
      }
      }

       

      18、數據提交到dataset中
      DataSet ds = new DataSet("MyDataSet");
      ds.Tables[biaom.Trim()].Rows.Clear();
      try
      {
      for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
      {
      DataTable dt = ds.Tables[biaom.Trim()];
      DataRow myrow = ds.Tables[biaom.Trim()].NewRow();
      for (int j = 0; j < dataGridView1.Columns.Count; j++)
      {
      myrow[j] = Convert.ToString(dataGridView1.Rows[i].Cells[j].Value);
      }
      ds.Tables[biaom.Trim()].Rows.Add(myrow);
      }
      }
      catch (Exception)
      {

      MessageBox.Show("輸入類型錯誤!");
      return;
      }

      分享:揭秘10項必學的.NET技術
      1、WCF (Windows Communication Foundation):雖然WCF顯然沒有WPF或SilverLight那么吸引人,但是它卻是在.NET框架下解決業務問題的基

      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-07-17
      相關.Net教程