簡體   English   中英

C#Windows窗體ComboBox如何將默認值設置為“選擇”,最初會從數據表加載數據

[英]C# Windows Forms ComboBox How to Set default value to “Select ” initially loads data from datatable

我搜索了該網站,發現一些與我要執行的操作有關的參考。 在我的情況下,沒有一個有效。

這似乎是一個簡單的問題。 我只是試圖將默認值設置為“ --Select--”。

我正在從數據庫的數據表中填充comboBox

        Admin_BL admBL = new Admin_BL();
        //populates datatable from database
        dtBlds = admBL.GetActiveBuildings();

        cmbBuilding.DataSource = dtBlds;
        cmbBuilding.Text = "--Select--";

        cmbBuilding.DisplayMember = "Building";
        cmbBuilding.ValueMember = "Building"; 

我也使用了這個:

cmbBuilding.Items.Insert(0, "Select Bld");

這似乎是一個簡單的任務,我不確定為什么它不能在Windows窗體中工作,我將非常感謝您的幫助謝謝!

考慮到“ --Select--”是組合框中的第一項,在運行時,您可以通過其索引選擇第一項(當然,它可以在任何其他索引中設置,例如第三項,然后索引將為2):

cmbBuilding.SelectedIndex = 0;

要在填充組合框項目的函數中添加“ --Select--”,請先在其項目中添加“ --Select--”,然后再從數據庫中添加項目:

cmbBuilding.Items.Add("--Select--");

//添加數據庫中的其他項目。

這里的問題是您要綁定到對象,並且該對象不包含“-Select-”的條目。 您需要在查詢期間添加以下條目:

SELECT 0 AS ID, '-- Select --' AS Building
UNION ALL
SELECT ID, BUILDING FROM <TABLE>

然后,當您綁定時,您會發現“-選擇-”是第一項。

如果您不想更改查詢,則只需在檢索到數據后將新行插入數據表即可。

假設您的數據表中只有兩列(ID和建築物):

DataRow row = dtBlds.NewRow();
row[0] = 0;
row[1] = "-- Select --";
dtBlds.Rows.InsertAt(row, 0);

完成此操作后,即可進行綁定:

cmbBuilding.DataSource = dtBlds;
cmbBuilding.DisplayMember = "Building";
cmbBuilding.ValueMember = "Building"; 

暫無
暫無

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

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