在winfrom下,如何把checkBOX添加到DATAGRID中!! 在winfrom下,如何把checkBOX添加到DATAGRID中!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //初始化DataGrid private void PopulateGrid() { //创建一个DataTable对象,包括四列,前三列为String,最后一列为Boolean。 dtblFunctionalArea = new DataTable ("FunctionArea"); string[] arrstrFunctionalArea = new string [3]{"Functional Area","Min","Max"}; DataColumn dtCol = null; //创建String列 for(int i=0; i< 3;i++) { dtCol = new DataColumn(arrstrFunctionalArea[i]); dtCol.DataType = Type.GetType("System.String"); dtCol.DefaultValue = ""; dtblFunctionalArea.Columns.Add(dtCol); } //创建Boolean列,用CheckedBox来显示。 DataColumn dtcCheck = new DataColumn("IsMandatory"); dtcCheck.DataType = System.Type.GetType("System.Boolean"); dtcCheck.DefaultValue = false; dtblFunctionalArea.Columns.Add(dtcCheck); //把表绑定到DataGrid dgdFunctionArea.DataSource = dtblFunctionalArea; //为DataGrid加载DataGridTableStyle样式 if(!dgdFunctionArea.TableStyles.Contains("FunctionArea")) { DataGridTableStyle dgdtblStyle = new DataGridTableStyle(); dgdtblStyle.MappingName = dtblFunctionalArea.TableName; dgdFunctionArea.TableStyles.Add(dgdtblStyle); dgdtblStyle.RowHeadersVisible = false; dgdtblStyle.HeaderBackColor = Color.LightSteelBlue; dgdtblStyle.AllowSorting = false; dgdtblStyle.HeaderBackColor = Color.FromArgb(8,36,107); dgdtblStyle.RowHeadersVisible = false; dgdtblStyle.HeaderForeColor = Color.White; dgdtblStyle.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); dgdtblStyle.GridLineColor = Color.DarkGray; dgdtblStyle.PreferredRowHeight = 22; dgdFunctionArea.BackgroundColor = Color.White; //设置列的宽度 GridColumnStylesCollection colStyle = dgdFunctionArea.TableStyles[0].GridColumnStyles; colStyle[0].Width = 100; colStyle[1].Width = 50; colStyle[2].Width = 50; colStyle[3].Width = 80; } DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[0]; ComboBox cmbFunctionArea = new ComboBox(); cmbFunctionArea.Items.AddRange(new object[]{"选项一","选项二","选项三"}); cmbFunctionArea.Cursor = Cursors.Arrow; cmbFunctionArea.DropDownStyle= ComboBoxStyle.DropDownList; cmbFunctionArea.Dock = DockStyle.Fill; //在选定项发生更改并且提交了该更改后发生 cmbFunctionArea.SelectionChangeCommitted += new EventHandler(cmbFunctionArea_SelectionChangeCommitted); //把ComboBox添加到DataGridTableStyle的第一列 dgtb.TextBox.Controls.Add(cmbFunctionArea); } //设置焦点模拟 private void GetFocus(int row,int col) { //先把焦点移动到DataGrid this.dgdFunctionArea.Focus(); //把焦点移动到DataGridCell DataGridCell dgc = new DataGridCell(row,col); this.dgdFunctionArea.CurrentCell = dgc; DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[col]; //设置焦点 dgtb.TextBox.Focus(); } //把Combobox上修改的数据提交到当前的网格 private void cmbFunctionArea_SelectionChangeCommitted(object sender, EventArgs e) { this.dgdFunctionArea[this.dgdFunctionArea.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } //设置新的焦点 private void buttonFocus_Click(object sender, System.EventArgs e) { //焦点模拟,这里设置第三行第一列 GetFocus(2,0); } 有很多可以参考的文章:http://www.codeproject.com/cs/miscctrl/noogenwinforms.asphttp://www.codeproject.com/useritems/Control_DataGrid.asp 怎样读取textbox里的多行文本 如何实现在属性控件中出现谓词? 求算法:求枚舉子集合的算法 想找点音频视频算法资料 打包文件路径问题,急.在线等 网络采集工具的页面刷新问题 关于DataGrid中显示定位问题,请各位大侠帮忙看看。(50分) 关于代码格式的问题 如何让程序暂停运行 单选按钮是否被选中??? 如何编写一个程序可以实现文本的拼写检查,但是不能用调用word的方法 一个组件如何取得它所在的Windows Form窗体对象?
private void PopulateGrid()
{
//创建一个DataTable对象,包括四列,前三列为String,最后一列为Boolean。
dtblFunctionalArea = new DataTable ("FunctionArea");
string[] arrstrFunctionalArea = new string [3]{"Functional Area","Min","Max"};
DataColumn dtCol = null;
//创建String列
for(int i=0; i< 3;i++)
{
dtCol = new DataColumn(arrstrFunctionalArea[i]);
dtCol.DataType = Type.GetType("System.String");
dtCol.DefaultValue = "";
dtblFunctionalArea.Columns.Add(dtCol);
} //创建Boolean列,用CheckedBox来显示。
DataColumn dtcCheck = new DataColumn("IsMandatory");
dtcCheck.DataType = System.Type.GetType("System.Boolean");
dtcCheck.DefaultValue = false;
dtblFunctionalArea.Columns.Add(dtcCheck); //把表绑定到DataGrid
dgdFunctionArea.DataSource = dtblFunctionalArea; //为DataGrid加载DataGridTableStyle样式
if(!dgdFunctionArea.TableStyles.Contains("FunctionArea"))
{
DataGridTableStyle dgdtblStyle = new DataGridTableStyle();
dgdtblStyle.MappingName = dtblFunctionalArea.TableName;
dgdFunctionArea.TableStyles.Add(dgdtblStyle);
dgdtblStyle.RowHeadersVisible = false;
dgdtblStyle.HeaderBackColor = Color.LightSteelBlue;
dgdtblStyle.AllowSorting = false;
dgdtblStyle.HeaderBackColor = Color.FromArgb(8,36,107);
dgdtblStyle.RowHeadersVisible = false;
dgdtblStyle.HeaderForeColor = Color.White;
dgdtblStyle.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 9F,
System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
dgdtblStyle.GridLineColor = Color.DarkGray;
dgdtblStyle.PreferredRowHeight = 22;
dgdFunctionArea.BackgroundColor = Color.White; //设置列的宽度
GridColumnStylesCollection colStyle = dgdFunctionArea.TableStyles[0].GridColumnStyles;
colStyle[0].Width = 100;
colStyle[1].Width = 50;
colStyle[2].Width = 50;
colStyle[3].Width = 80;
} DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[0]; ComboBox cmbFunctionArea = new ComboBox();
cmbFunctionArea.Items.AddRange(new object[]{"选项一","选项二","选项三"});
cmbFunctionArea.Cursor = Cursors.Arrow;
cmbFunctionArea.DropDownStyle= ComboBoxStyle.DropDownList;
cmbFunctionArea.Dock = DockStyle.Fill; //在选定项发生更改并且提交了该更改后发生 cmbFunctionArea.SelectionChangeCommitted += new EventHandler(cmbFunctionArea_SelectionChangeCommitted); //把ComboBox添加到DataGridTableStyle的第一列 dgtb.TextBox.Controls.Add(cmbFunctionArea); } //设置焦点模拟 private void GetFocus(int row,int col)
{
//先把焦点移动到DataGrid
this.dgdFunctionArea.Focus();
//把焦点移动到DataGridCell
DataGridCell dgc = new DataGridCell(row,col);
this.dgdFunctionArea.CurrentCell = dgc;
DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[col]; //设置焦点 dgtb.TextBox.Focus();
} //把Combobox上修改的数据提交到当前的网格 private void cmbFunctionArea_SelectionChangeCommitted(object sender, EventArgs e)
{
this.dgdFunctionArea[this.dgdFunctionArea.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } //设置新的焦点 private void buttonFocus_Click(object sender, System.EventArgs e)
{
//焦点模拟,这里设置第三行第一列
GetFocus(2,0);
}
http://www.codeproject.com/useritems/Control_DataGrid.asp