|
<p >0(最基本的技巧)、获取某列中的某行(某单元格)中的内容<p ><p >this.currentposition<p > = this.dataGridView1.BindingContext<p > [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position;<p >bookContent<p > = this.database.dataSet.Tables[0].Rows<p > [this.currentposition][21].ToString().Trim();<p >MessageBox.Show(bookContent); <p ><p >1、自定义列<p ><p ><p >//定义列宽this.dataGridView1.Columns[0].Width = 80;<p >this.dataGridView1.Columns[1].Width = 80;<p >this.dataGridView1.Columns[2].Width = 180;<p >this.dataGridView1.Columns[3].Width = 120;<p >this.dataGridView1.Columns[4].Width = 120;<p >Customize Cells and Columns in the Windows Forms DataGridView<p > Control by Extending TheirBehavior and AppearanceHost Controls<p > in Windows Forms DataGridView Cells <p ><p >继承 DataGridViewTextBoxCell 类生成新的Cell类,然后再继承 DataGridViewColumn 生成新的Column类,并指定CellTemplate为新的Cell类。新生成的Column便可以增加到DataGridView中去。<p ><p >2、自动适应列宽<p ><p > rogrammatically Resize Cells to Fit Content<p > in the Windows Forms DataGridView ControlSamples:<p >DataGridView.AutoSizeColumns<p >(DataGridViewAutoSizeColumnCriteria.HeaderAndDisplayedRows);<p >DataGridView.AutoSizeColumn<p >(DataGridViewAutoSizeColumnCriteria.HeaderOnly,2, false);<p >DataGridView.AutoSizeRow<p >(DataGridViewAutoSizeRowCriteria.Columns,2, false);<p >DataGridView.AutoSizeRows<p >(DataGridViewAutoSizeRowCriteria.HeaderAndColumns,0,<p > dataGridView1.Rows.Count, false); <p ><p >3、可以绑定并显示对象<p ><p >Bind Objects to Windows Forms DataGridView Controls <p ><p >4、可以改变表格线条风格<p ><p >Change the Border and Gridline Styles in the Windows Forms DataGridView<p > ControlSamples:this.dataGridView1.GridColor =<p > Color.BlueViolet;this.dataGridView1.BorderStyle = <p >BorderStyle.Fixed3D;this.dataGridView1.CellBorderStyle = <p >DataGridViewCellBorderStyle.None;this.dataGridView1.RowHeadersBorderStyle = <p >DataGridViewHeaderBorderStyle.Single;this.dataGridView1.ColumnHeadersBorderStyle = <p >DataGridViewHeaderBorderStyle.Single; <p ><p >5、动态改变列是否显示,和动态改变列的显示顺序<p ><p >Change the Order of the Columns in the Windows Forms<p > DataGridView ControlSamples:customersDataGridView.Columns["CustomerID"].<p >Visible = false;customersDataGridView.Columns["ContactName"].DisplayIndex<p > = 0;customersDataGridView.Columns["ContactTitle"].DisplayIndex<p > = 1;customersDataGridView.Columns["City"].DisplayIndex<p > = 2;customersDataGridView.Columns["Country"].DisplayIndex<p > = 3;customersDataGridView.Columns["CompanyName"].DisplayIndex<p > = 4; <p ><p >6、可以在列中显示图像<p ><p >Display Images in Cells of the Windows Forms DataGridView ControlSamples:<p >Icon treeIcon = new Icon(this.GetType(), "tree.ico");<p >DataGridViewImageColumn iconColumn = new DataGridViewImageColumn ();<p >iconColumn.Image = treeIcon.ToBitmap();iconColumn.Name = "Tree";<p >iconColumn.HeaderText = "Nice tree";<p >dataGridView1.Columns.Insert(2, iconColumn); <p ><p >7、格式化显示内容:<p ><p >Format Data in the Windows Forms DataGridView ControlSamples:<p >this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format <p >= "c";this.dataGridView1.Columns["ShipDate"].DefaultCellStyle.Format <p >= "d";this.dataGridView1.DefaultCellStyle.NullValue = "no entry";<p >this.dataGridView1.DefaultCellStyle.WrapMode = <p >DataGridViewWrapMode.Wrap;this.dataGridView1.Columns<p >["CustomerName"].DefaultCellStyle.Alignment<p > =DataGridViewContentAlignment.MiddleRight; <p ><p >8、在拖动列的滚动条时可以将指定的列冻结<p ><p >Freeze Columns in the Windows Forms DataGridView ControlSamples:<p >将指定列及以前的列固定不动<p >this.dataGridView1.Columns["AddToCartButton"].Frozen = true; <p ><p >9、获取选择的单元格,行,列<p ><p >Get the Selected Cells, Rows, and Columns in the Windows Forms<p > DataGridView ControlSamples: <p ><p >10、显示录入时出现的错误信息<p ><p >Handle Errors that Occur During Data Entry in the Windows Forms<p > DataGridView ControlSamples:private void dataGridView1_DataError<p >(object sender,DataGridViewDataErrorEventArgs e){<p >// If the data source raises an exception when a cell value is<p >// commited, display an error message.if <p >(e.Exception != null &&e.Context == DataGridViewDataErrorContext.Commit){<p >MessageBox.Show("CustomerID value must be unique.");<p >}<p >} <p ><p >11、大数据量显示采用Virtual Mode<p ><p >Implement Virtual Mode in the Windows Forms DataGridView Control <p ><p >12、设置指定的列只读<p ><p >Make Columns in the Windows Forms DataGridView Control Read-OnlySamples:<p >dataGridView1.Columns["CompanyName"].ReadOnly = true; <p ><p >13、移去自动生成的列<p ><p >Remove Autogenerated Columns from a Windows Forms DataGridView <p >ControlSample:dataGridView1.AutoGenerateColumns<p > = true;dataGridView1.DataSource<p > = customerDataSet;dataGridView1.Columns.Remove ("Fax");<p >或:dataGridView1.Columns["CustomerID"].Visible<p > = false; <p ><p >14、自定义选择模式<p ><p >Set the Selection Mode of the Windows Forms DataGridView ControlSample:<p >this.dataGridView1.SelectionMode<p > = DataGridViewSelectionMode.FullRowSelect;<p >this.dataGridView1.MultiSelect = false; <p ><p >15、自定义设定光标进入单元格是否编辑模式(编辑模式)<p ><p >Specify the Edit Mode for the Windows Forms DataGridView <p >Controlthis.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; <p ><p >16、新行指定默认值<p ><p >Specify Default Values for New Rows in the Windows Forms<p > DataGridView ControlSample:private void dataGridView1_DefaultValuesNeeded<p >(object sender, System.Windows.Forms.DataGridViewRowEventArgs e){<p >e.Row.Cells["Region"].Value = "WA";e.Row.Cells["City"].<p >Value = "Redmond";e.Row.Cells[" ostalCode"].Value = "98052-6399";<p >e.Row.Cells["Region"].Value = "NA";e.Row.Cells["Country"].Value<p > = "USA";e.Row.Cells["CustomerID"].Value = NewCustomerId();} <p ><p >17、数据验证<p ><p >Validate Data in the Windows Forms DataGridView ControlSamples:<p >private void dataGridView1_CellValidating(object sender,<p >DataGridViewCellValidatingEventArgs e){<p >// Validate the CompanyName entry by disallowing empty strings.if<p > (dataGridView1.Columns[e.ColumnIndex].Name == "CompanyName"){<p >if (e.FormattedValue.ToString() == String.Empty){<p >dataGridView1.Rows[e.RowIndex].ErrorText<p > ="Company Name must not be empty";e.Cancel = true;<p >}<p >}<p >} <p ><p >18、数据提交到dataset中<p ><p >DataSet ds = new DataSet("MyDataSet");<p >ds.Tables[biaom.Trim()].Rows.Clear();<p >try{for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)<p >{DataTable dt = ds.Tables[biaom.Trim()];<p >DataRow myrow = ds.Tables[biaom.Trim()].NewRow();<p >for (int j = 0; j < dataGridView1.Columns.Count; j++){<p >myrow[j] = Convert.ToString(dataGridView1.Rows.Cells[j].Value);<p >}<p >ds.Tables[biaom.Trim()].Rows.Add(myrow);<p >}<p >}<p >catch (Exception){<p >MessageBox.Show("输入类型错误!");return;<p >} <p >< align=right></P><p align="center"></p></p> |
|