1.通过同一个pictureBox控件加载不同的图片,在加载前需要释放控件里之前的Image。
pictureBox1.Image.Dispose();//Dispose之后对象就不存在了,只能重新Create.
2.DataTable添加一个checkbox新列作为第一列,DataTable绑定到datagridView。
//add a new column for checkbox DataColumn dc = new DataColumn("IsSelected", System.Type.GetType("System.Boolean")); dc.DefaultValue = false; dt.Columns.Add(dc); dt.Columns["IsSelected"].SetOrdinal(0); //设置只有checkbox可编辑 dataGridView1.DataSource = dt; for (int i = 1; i < dt.Columns.Count; i++) { dataGridView1.Columns[i].ReadOnly = true; } //默认不选中第一行 /*默认不选中第一行第一列的动作要放在窗体的Load事件里或者button等其他事件里,若DataGridView作为自定义控件出现,则应该在父容器的Load事件里写以下语句或者在父容器load之后再执行下列动作。*/ DataGridView.Rows[0].Selected=false; dataGridView1.Refresh(); //给添加的DataGridViewComboBoxColumn默认选中某项 ((DataGridViewComboBoxColumn)dataGridView1.Columns["columnName"]).DefaultCellStyle.NullValue = "value"; //绑定数据源的datagridview插入新行 DataRow dr = ((DataTable)dataGridView1.DataSource).NewRow(); ((DataTable)dataGridView1.DataSource).Rows.InsertAt(dr,e.RowIndex+1); //datagridviewcolumncell可换行显示 dataGridView1.Columns[i].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
3.ComboBox输入时提示,suggest为模糊查询,append为自动填充,可在控件的property处设定。
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
4.WinForm窗体默认情况下AutoScaleMode为Font,但为了解决两台不同分辨率的机子显示效果相同,保证控件大小一致,可将此属性设成None,禁用缩放。
MSDN关于此项属性的枚举类型的说明如下: None:禁用缩放。 Font:根据类使用的字体(通常为系统字体)的维度控制缩放。 Dpi:根据显示分辨率控制缩放。常用分辨率为 96 和 120 DPI。 Inherit:根据类的父类的缩放模式控制缩放。如果不存在父类,则禁用自动缩放。
5.DataGridView绑定数据量太大时重绘很慢,可将 AutoSizeColumnsMode和AutoSizeRowsMode设成None,改变行高的设置(RowTemplate->Height).
6. 有关combobox
(1)List绑定到combobox的高效方法:
cmb.Items.AddRange(list.ToArray());
(2)combobox的Items放到一个List中:
List<string> list = cmb.Items.Cast<object>().Select
(item => item.ToString()).ToList();