簡體   English   中英

如何在C#中的Winform應用程序中設置combobox第一個元素

[英]How to set combobox first element in winform application in c#

我是Winform應用程序的新手,在這里我使用的是Entity Framework,當我將值從sql表綁定到組合框時,我需要將第一個組合框項目設置為“請選擇”,我該如何設置呢?

var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();          
            if(qry!=null)
            {                
                drpname.ValueMember = "RecordId";
                drpname.DisplayMember = "Name";              
                drpname.DataSource = qry;                          
            }

我如何將第一項設置為“請選擇”並將值設置為“ 0”

Winform中的另一個建議是..當我將“編輯”,“刪除”列設置為鏈接按鈕時,如何在datagridview鏈接按鈕列中設置值

您可以將該項目插入列表的開頭。

碼:

var items = db.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();
items.Insert(0,new Tbl_EmployeeDetail() { RecordId= 0, Name = "[Please Select an Item]" });

drpname.DropDownStyle = ComboBoxStyle.DropDownList; //optional
drpname.ValueMember = "RecordId";
drpname.DisplayMember = "Name";
drpname.DataSource = items;
drpname.SelectedIndex = 0;

截圖:

在此處輸入圖片說明

注意

要在ComboBox提示而不添加項目,請查看以下文章:

ComboBox選擇文本而不添加項目ComboBox選擇文本而不添加項目

加載將為List<string> var qry ,您需要執行以下操作

var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();   

if(qry!=null)
{                
    drpname.ValueMember = "RecordId";
    drpname.DisplayMember = "Name";              
    drpname.DataSource = qry;  
    drpname.Items.Insert(0, "--Please Select--");   
    drpname.SelectedIndex = 0;                     
}

或者您可以輕松地將其添加到qry,因為您要返回數據ToList()

例如

var qry = context.Tbl_EmployeeDetails.Where(x => x.IsDeleted == false).ToList();   
qry.Insert(0, "--Please Select--");

if(qry!=null)
{                
    drpname.ValueMember = "RecordId";
    drpname.DisplayMember = "Name";              
    drpname.DataSource = qry; 
    drpname.SelectedIndex = 0; 
}

如果將組合框綁定到數據源,則組合框不能包含其他項目。 您可以在此處選擇以下幾種方式:

  1. 不要將其綁定到數據源,即通過遍歷查詢中的項目並將它們分別添加到組合框中,從數據集中手動填充它; 這將使您有機會首先添加“請選擇”項。 這可能很復雜,因為實際上您必須將字符串名稱添加為組合框中的項目,然后可以將項目的Tag屬性設置為實際的查詢行,以便以后引用它。

  2. 包括從查詢中返回的顯示項目為“請選擇”的假項目。 注意,我不推薦這種方法,因為您正在允許表示邏輯泄漏到數據/業務層。

  3. 使用第三方控件而不是Win窗體組合框。 我使用過Infragistics,當沒有選擇任何內容時,它們可以顯示不在列表中的“建議”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM