Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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
设置SelectedValue后,C#列表框值为空_C#_Combobox_Null_Listbox_Selectedvalue - Fatal编程技术网

设置SelectedValue后,C#列表框值为空

设置SelectedValue后,C#列表框值为空,c#,combobox,null,listbox,selectedvalue,C#,Combobox,Null,Listbox,Selectedvalue,我已经基于一个数据库表创建了一个listbox,其中listbox的DisplayMember项是通过字符串连接创建的,ValueMember项表示表中的bigInt PK。列表框绑定到文本/值对象,如下所示 List<ComboSearchItems> csi = new List<ComboSearchItems>(); foreach(var i in q) { ComboSearchItems ci = new ComboS

我已经基于一个数据库表创建了一个listbox,其中listbox的DisplayMember项是通过字符串连接创建的,ValueMember项表示表中的bigInt PK。列表框绑定到文本/值对象,如下所示

List<ComboSearchItems> csi = new List<ComboSearchItems>();
     foreach(var i in q)
     {
          ComboSearchItems ci = new ComboSearchItems(String.Concat(i.Id, " - ", i.Name, " - ", i.CompanyName), i.Id);
          csi.Add(ci);
     }

     lstCompany.DataSource = csi;
     lstCompany.DisplayMember = "Text";
     lstCompany.ValueMember = "Value";
     lstCompany.SelectedIndex = 0;
     lstCompany.Refresh();

public class ComboSearchItems
{
    public string Text { get; set; }
    public Int64 Value { get; set; }

    //Constructor
    public ComboSearchItems(string t, Int64 v)
    {
        Text = t;
        Value = v;
    }
}

设置值为整数的列表框的SelectedValue时,新值必须为相同类型的整数。如果试图在不显式发送Int64类型的情况下设置Int64值,将导致静默故障,从而导致listbox的SelectedValue设置为null

以下示例将设置SelectedValue

 lstCompany.SelectedValue = Convert.ToInt64(4251);

 lstCompany.SelectedValue = 4251L;
以下代码将自动失败,并将listbox的SelectedValue设置为null

 lstCompany.SelectedValue = 4251;

设置值为整数的列表框的SelectedValue时,新值必须为相同类型的整数。如果试图在不显式发送Int64类型的情况下设置Int64值,将导致静默故障,从而导致listbox的SelectedValue设置为null

以下示例将设置SelectedValue

 lstCompany.SelectedValue = Convert.ToInt64(4251);

 lstCompany.SelectedValue = 4251L;
以下代码将自动失败,并将listbox的SelectedValue设置为null

 lstCompany.SelectedValue = 4251;