在 C# WinForms 開發中,經常需要檢查 ComboBox 控件是否已經有用戶選中的項目。許多初學者嘗試直接判斷 SelectedItem 是否為 null,但容易忽略空字符串或未選中狀態的細微差別。
最可靠的方式是同時檢查 SelectedItem 是否為 null,以及其字符串表示是否為空或僅包含空白字符:
if (this.comboBox1.SelectedItem == null || string.IsNullOrWhiteSpace(this.comboBox1.SelectedItem.ToString()))
{
// 未選中任何有效項目
MessageBox.Show("請選擇一個項目!");
}
else
{
// 已選中,可安全使用 this.comboBox1.SelectedItem
string selected = this.comboBox1.SelectedItem.ToString();
// 後續業務邏輯...
}
string.IsNullOrWhiteSpace 過濾。HasValidSelection(),提高代碼復用性。
若綁定的是複雜對象(如 DataTable 或實體類),建議改用 SelectedValue 配合 ValueMember 判斷,避免因 ToString() 重寫不當導致誤判。