我的目的:动态创建行容器panel,在每行创建Combobox,并依据数据源进行赋值(先给固定值)。
代码如下:
private void Inform()
{
//
// panel1
//
System.Windows.Forms.Panel panel1 = new System.Windows.Forms.Panel();
panel1.Location = new System.Drawing.Point(85, 112);
panel1.Name = "panel11";
panel1.Size = new System.Drawing.Size(200, 100);
panel1.TabIndex = 0;
//
// comboBoxBase1
//
ComboBox comboBoxBase1 = new ComboBox();
comboBoxBase1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
comboBoxBase1.FormattingEnabled = true;
comboBoxBase1.Location = new System.Drawing.Point(15, 14);
comboBoxBase1.Name = "comboBoxBase11";
comboBoxBase1.Size = new System.Drawing.Size(121, 20);
comboBoxBase1.TabIndex = 0; panel1.Controls.Add(comboBoxBase1); DataTable dtUnit = new T_Unit(this.mClientApp, 0).GetT_UnitPublicList(false).Copy();
comboBoxBase1.DataSource = dtUnit;
comboBoxBase1.DisplayMember = "Unit";
comboBoxBase1.ValueMember = "UnitID";
//this.Refresh();
comboBoxBase1.SelectedValue = "1003";//是无效的
this.Controls.Add(panel1); //comboBoxBase1.SelectedValue = 1003;//是有效的
}如果我将SelectedValue放在this.Controls.Add(panel1);之前 赋值是为空的,如果是放在此之后,是有效的。如果我一定要希望放在此之前赋值,有什么办法吗?
纠结一个晚上了
代码如下:
private void Inform()
{
//
// panel1
//
System.Windows.Forms.Panel panel1 = new System.Windows.Forms.Panel();
panel1.Location = new System.Drawing.Point(85, 112);
panel1.Name = "panel11";
panel1.Size = new System.Drawing.Size(200, 100);
panel1.TabIndex = 0;
//
// comboBoxBase1
//
ComboBox comboBoxBase1 = new ComboBox();
comboBoxBase1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
comboBoxBase1.FormattingEnabled = true;
comboBoxBase1.Location = new System.Drawing.Point(15, 14);
comboBoxBase1.Name = "comboBoxBase11";
comboBoxBase1.Size = new System.Drawing.Size(121, 20);
comboBoxBase1.TabIndex = 0; panel1.Controls.Add(comboBoxBase1); DataTable dtUnit = new T_Unit(this.mClientApp, 0).GetT_UnitPublicList(false).Copy();
comboBoxBase1.DataSource = dtUnit;
comboBoxBase1.DisplayMember = "Unit";
comboBoxBase1.ValueMember = "UnitID";
//this.Refresh();
comboBoxBase1.SelectedValue = "1003";//是无效的
this.Controls.Add(panel1); //comboBoxBase1.SelectedValue = 1003;//是有效的
}如果我将SelectedValue放在this.Controls.Add(panel1);之前 赋值是为空的,如果是放在此之后,是有效的。如果我一定要希望放在此之前赋值,有什么办法吗?
纠结一个晚上了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货