Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置组合框的默认值?_C#_Winforms_Combobox - Fatal编程技术网

C# 如何设置组合框的默认值?

C# 如何设置组合框的默认值?,c#,winforms,combobox,C#,Winforms,Combobox,在windows窗体中,它有一个组合框,其中包含数据源绑定的数据 设置组合框的文本属性时 所选组合框->属性->文本:“--选择--” 设计页面显示给定的文本。但是当运行应用程序时,给定的文本消失了,并且出现了来自数据源的组合框项的初始索引值 所以我在表单load中给出了组合框文本。我是说在构造器里 public myform() { InitializeComponent(); ComboBox.Text="--Select--"; } 链接修改和更多。但是 在组合框

在windows窗体中,它有一个组合框,其中包含数据源绑定的数据

设置组合框的文本属性时

所选组合框->属性->文本:“--选择--”

设计页面显示给定的文本。但是当运行应用程序时,给定的文本消失了,并且出现了来自数据源的组合框项的初始索引值

所以我在表单load中给出了组合框文本。我是说在构造器里

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)
Add
BindComboBox()
。我已经测试过了,它可以工作了!嘿,在这个组合框中,单击右上角,我使用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--";           
    }