在winFrom中的DataGrid如何达到在列中添加按钮???? 急.. .net winform编程中,如何在datagrid列中添加一个button.就是像WebFrom中的模板列里添加功能按钮.谢谢. 我没做过winFrom的东西,今天一看winfrom的datagrid跟webForm的完全不是样.晕了. 急。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接添加列以后设置一下就OK了.这一列.celltype=button. 我这里我自己写的在datagrid添加ComboBox和DateTimerPick的代码://向DataGrid中添加ComboBox和DateTimerPicker private void PopulateGrid(DataTable dt) { DataGridTableStyle DgStyle = new DataGridTableStyle(); DgStyle.MappingName = dt.TableName; this.dataGrid1.TableStyles.Add(DgStyle); DgStyle.RowHeadersVisible = true; DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[7]; ComboBox cmb = new ComboBox(); cmb.Cursor = Cursors.Arrow; cmb.Dock = DockStyle.Fill; DataGridTextBoxColumn dgtb0 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1]; DateTimePicker dtime = new DateTimePicker(); dtime.Cursor = Cursors.Arrow; dtime.Dock = DockStyle.Fill; dgtb0.TextBox.Controls.Add(dtime); dtime.ValueChanged +=new EventHandler(dtime_ValueChanged); Base bb = new Base(); string str1 = "select * from SectionInfo"; DataTable table1 = new DataTable(); table1 = bb.ExeSQLdt(str1); DataGridTextBoxColumn dgtb1 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[2]; ComboBox cb1 = new ComboBox(); cb1.DataSource = table1.DefaultView; cb1.DisplayMember = "sName"; cb1.ValueMember = "sId"; cb1.Cursor = Cursors.Arrow; cb1.DropDownStyle = ComboBoxStyle.DropDownList; cb1.Dock = DockStyle.Fill; dgtb1.TextBox.Controls.Add(cb1); cb1.SelectionChangeCommitted +=new EventHandler(cb1_SelectionChangeCommitted); DataGridTextBoxColumn dgtb2 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[3]; ComboBox cb2 = new ComboBox(); cb2.DataSource = table1.DefaultView; cb2.DisplayMember = "sName"; cb2.ValueMember = "sId"; cb2.Cursor = Cursors.Arrow; cb2.DropDownStyle = ComboBoxStyle.DropDownList; cb2.Dock = DockStyle.Fill; dgtb2.TextBox.Controls.Add(cb2); cb2.SelectionChangeCommitted +=new EventHandler(cb2_SelectionChangeCommitted); string str2 = "select * from JobInfo"; DataTable table2 = new DataTable(); table2 = bb.ExeSQLdt(str2); DataGridTextBoxColumn dgtb3 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[4]; ComboBox cb3 = new ComboBox(); cb3.DataSource = table2.DefaultView; cb3.DisplayMember = "JName"; cb3.ValueMember = "jsId"; cb3.Cursor = Cursors.Arrow; cb3.DropDownStyle = ComboBoxStyle.DropDownList; cb3.Dock = DockStyle.Fill; dgtb3.TextBox.Controls.Add(cb3); cb3.SelectionChangeCommitted +=new EventHandler(cb3_SelectionChangeCommitted); DataGridTextBoxColumn dgtb4 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[5]; ComboBox cb4 = new ComboBox(); cb4.DataSource = table2.DefaultView; cb4.DisplayMember = "JName"; cb4.ValueMember = "jId"; cb4.Cursor = Cursors.Arrow; cb4.DropDownStyle = ComboBoxStyle.DropDownList; cb4.Dock = DockStyle.Fill; dgtb4.TextBox.Controls.Add(cb4); cb4.SelectionChangeCommitted +=new EventHandler(cb4_SelectionChangeCommitted); } private void dtime_ValueChanged(object sender, EventArgs e) { this.dataGrid1[this.dataGrid1.CurrentCell] = ((DateTimePicker)sender).Value.ToShortDateString(); } private void cb1_SelectionChangeCommitted(object sender, EventArgs e) { this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } private void cb2_SelectionChangeCommitted(object sender, EventArgs e) { this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } private void cb3_SelectionChangeCommitted(object sender, EventArgs e) { this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } private void cb4_SelectionChangeCommitted(object sender, EventArgs e) { this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString(); } string.Compare方法下的字符串比较问题 false||false==false? (急)C#,GDI+绘图时,如何给两个多边形之间的区域填充颜色? 怎样在一个wpf Windows应用里集成Navigation导航功能? C#.NET应用智能文档问题 这个意图如何实现 FreeTextBox页面回发后按钮失效 怎样检测到有优盘插入到计算机,然后把优盘的内容拷贝出来,在后台运行〉????? 正则表达式 <?任意字符?> 如何写? 第一次在CSDN提问:) 引用了一个VB做的OCX,如何监听该OCX内的一个事件呢? 水晶报表问题 如何实现自动换行。。?在线等待
//向DataGrid中添加ComboBox和DateTimerPicker
private void PopulateGrid(DataTable dt)
{
DataGridTableStyle DgStyle = new DataGridTableStyle();
DgStyle.MappingName = dt.TableName;
this.dataGrid1.TableStyles.Add(DgStyle);
DgStyle.RowHeadersVisible = true; DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[7];
ComboBox cmb = new ComboBox();
cmb.Cursor = Cursors.Arrow;
cmb.Dock = DockStyle.Fill;
DataGridTextBoxColumn dgtb0 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[1];
DateTimePicker dtime = new DateTimePicker();
dtime.Cursor = Cursors.Arrow;
dtime.Dock = DockStyle.Fill;
dgtb0.TextBox.Controls.Add(dtime);
dtime.ValueChanged +=new EventHandler(dtime_ValueChanged);
Base bb = new Base(); string str1 = "select * from SectionInfo";
DataTable table1 = new DataTable();
table1 = bb.ExeSQLdt(str1); DataGridTextBoxColumn dgtb1 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[2];
ComboBox cb1 = new ComboBox();
cb1.DataSource = table1.DefaultView;
cb1.DisplayMember = "sName";
cb1.ValueMember = "sId";
cb1.Cursor = Cursors.Arrow;
cb1.DropDownStyle = ComboBoxStyle.DropDownList;
cb1.Dock = DockStyle.Fill;
dgtb1.TextBox.Controls.Add(cb1);
cb1.SelectionChangeCommitted +=new EventHandler(cb1_SelectionChangeCommitted); DataGridTextBoxColumn dgtb2 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[3];
ComboBox cb2 = new ComboBox();
cb2.DataSource = table1.DefaultView;
cb2.DisplayMember = "sName";
cb2.ValueMember = "sId";
cb2.Cursor = Cursors.Arrow;
cb2.DropDownStyle = ComboBoxStyle.DropDownList;
cb2.Dock = DockStyle.Fill;
dgtb2.TextBox.Controls.Add(cb2);
cb2.SelectionChangeCommitted +=new EventHandler(cb2_SelectionChangeCommitted); string str2 = "select * from JobInfo";
DataTable table2 = new DataTable();
table2 = bb.ExeSQLdt(str2); DataGridTextBoxColumn dgtb3 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[4];
ComboBox cb3 = new ComboBox();
cb3.DataSource = table2.DefaultView;
cb3.DisplayMember = "JName";
cb3.ValueMember = "jsId";
cb3.Cursor = Cursors.Arrow;
cb3.DropDownStyle = ComboBoxStyle.DropDownList;
cb3.Dock = DockStyle.Fill;
dgtb3.TextBox.Controls.Add(cb3);
cb3.SelectionChangeCommitted +=new EventHandler(cb3_SelectionChangeCommitted); DataGridTextBoxColumn dgtb4 = (DataGridTextBoxColumn)this.dataGrid1.TableStyles[0].GridColumnStyles[5];
ComboBox cb4 = new ComboBox();
cb4.DataSource = table2.DefaultView;
cb4.DisplayMember = "JName";
cb4.ValueMember = "jId";
cb4.Cursor = Cursors.Arrow;
cb4.DropDownStyle = ComboBoxStyle.DropDownList;
cb4.Dock = DockStyle.Fill;
dgtb4.TextBox.Controls.Add(cb4);
cb4.SelectionChangeCommitted +=new EventHandler(cb4_SelectionChangeCommitted); } private void dtime_ValueChanged(object sender, EventArgs e)
{
this.dataGrid1[this.dataGrid1.CurrentCell] = ((DateTimePicker)sender).Value.ToShortDateString();
} private void cb1_SelectionChangeCommitted(object sender, EventArgs e)
{
this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
}
private void cb2_SelectionChangeCommitted(object sender, EventArgs e)
{
this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
} private void cb3_SelectionChangeCommitted(object sender, EventArgs e)
{
this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
}
private void cb4_SelectionChangeCommitted(object sender, EventArgs e)
{
this.dataGrid1[this.dataGrid1.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
}