C# 如何设置组合框的默认值?
在windows窗体中,它有一个组合框,其中包含数据源绑定的数据 设置组合框的文本属性时 所选组合框->属性->文本:“--选择--” 设计页面显示给定的文本。但是当运行应用程序时,给定的文本消失了,并且出现了来自数据源的组合框项的初始索引值 所以我在表单load中给出了组合框文本。我是说在构造器里C# 如何设置组合框的默认值?,c#,winforms,combobox,C#,Winforms,Combobox,在windows窗体中,它有一个组合框,其中包含数据源绑定的数据 设置组合框的文本属性时 所选组合框->属性->文本:“--选择--” 设计页面显示给定的文本。但是当运行应用程序时,给定的文本消失了,并且出现了来自数据源的组合框项的初始索引值 所以我在表单load中给出了组合框文本。我是说在构造器里 public myform() { InitializeComponent(); ComboBox.Text="--Select--"; } 链接修改和更多。但是 在组合框
public myform()
{
InitializeComponent();
ComboBox.Text="--Select--";
}
链接修改和更多。但是
在组合框中搜索了很多问题。但这些都不能解决我的问题
已编辑
在该组合框中,单击右上角,从中我使用Datasouce为组合框选择了数据。我没有为将项目添加到combobox中编写任何代码。假设您将combobox绑定到一个
列表
当然,这意味着您需要在尝试使用组合框中的信息时添加一个检查代码
if(cbo1.SelectedValue != null && Convert.ToInt32(cbo1.SelectedValue) == -1)
MessageBox.Show("Please select a person name");
else
......
如果使用数据表而不是列表,则代码相同。您需要在datatable的Rows集合的第一个位置添加一个伪行,并设置combobox的初始索引以使事情变得清晰。在将行添加到集合之前,只需查看datatable列的名称以及哪些列应包含非空值
在包含ID、FirstName、LastName with ID、FirstName和LastName三列的表中,您需要
DataRow row = datatable.NewRow();
row["ID"] = -1;
row["FirstName"] = "--Select--";
row["LastName"] = "FakeAddress";
dataTable.Rows.InsertAt(row, 0);
您可以这样做:
public myform()
{
InitializeComponent(); // this will be called in ComboBox ComboBox = new System.Windows.Forms.ComboBox();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'myDataSet.someTable' table. You can move, or remove it, as needed.
this.myTableAdapter.Fill(this.myDataSet.someTable);
comboBox1.SelectedItem = null;
comboBox1.SelectedText = "--select--";
}
您是否通过
combobox.Items.Insert(0,“--Select--”)在组合框中插入该项代码>并通过组合框设置selectedindex。selectedindex=0代码>感谢您的回复@Vandita I使用Datasource绑定数据。因此,无法添加新值。可以在dat绑定的代码之后添加该值。如果设置数据源属性,则无法从代码更改文本属性。在数据源中添加“-Select--”文本作为伪项(这取决于您拥有的数据源类型),我怀疑绑定是在代码之后执行的,这会使文本消失。您不能将新项目添加到绑定的列表中吗?为什么?如果选择了索引!=0,然后在SelectedIndexChange上继续您的代码event@Vandita此代码无法工作。设置数据源后,无法更改Items集合。您得到一个ArgumentException。@User6667769:您必须初始化一个数据源,该数据源将被添加到加载方法中的private void Form1\u Load(object sender,EventArgs e)
AddBindComboBox()
。我已经测试过了,它可以工作了!嘿,在这个组合框中,单击右上角,我使用Datasouce为我的组合框选择了数据。我没有为将项目添加到combobox中编写任何代码。。因此,它会自动将数据的第一个索引值设置为索引0。那么如何将新数据添加到第0个索引中呢。这是个例外
DataRow row = datatable.NewRow();
row["ID"] = -1;
row["FirstName"] = "--Select--";
row["LastName"] = "FakeAddress";
dataTable.Rows.InsertAt(row, 0);
public myform()
{
InitializeComponent(); // this will be called in ComboBox ComboBox = new System.Windows.Forms.ComboBox();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'myDataSet.someTable' table. You can move, or remove it, as needed.
this.myTableAdapter.Fill(this.myDataSet.someTable);
comboBox1.SelectedItem = null;
comboBox1.SelectedText = "--select--";
}