Đây là cách đơn giản. Bạn có thể sử dụng thuộc tính Thẻ của combobox. Nó có thể trống hoặc 0 giá trị nguyên khi nó trống hoặc chưa hoàn thành. Bạn phải đặt Thẻ của combobox là số lượng mục của nó sau khi giới hạn. Trong sự kiện SelectedValueThay đổi nếu thuộc tính Thẻ là null hoặc 0, bạn phải trả về từ void.
Đây là một số mẫu từ dự án của tôi.
private void cb_SelectedValueChanged(object sender, EventArgs e)
{
if (!(sender is ComboBox)) return;
ComboBox cb = sender as ComboBox;
if (DataUtils.ToInt(cb.Tag, 0) == 0) return;
if (cbSmk.SelectedValue == null) return;
/* Continue working; */
}
public static void ComboboxFill(ComboBox cb, string keyfld, string displayfld, string sql)
{
try
{
cb.Tag = 0;
cb.DataSource = null;
cb.Items.Clear();
DataSet ds = DataMgr.GetDsBySql(sql);
if (!DataUtils.HasDtWithRecNoErr(ds))
{
cb.Text = "No data";
}
else
{
cb.DataSource = ds.Tables[0];
cb.DisplayMember = displayfld;
cb.ValueMember = keyfld;
}
cb.Tag = cb.Items.Count;
}
catch (Exception ex)
{
Int32 len = ex.Message.Length > 200 ? 200 : ex.Message.Length;
cb.Text = ex.Message.Substring(0, len);
}
}
CmpHelper.ComboboxFill(cbUser, "USER_ID", "USER_NAME", "SELECT * FROM SP_USER WHERE 1=1 ORDER by 1",-1);
bạn có thể thiết lập một lá cờ, thiết lập DataSource và unset cờ? Sau đó, trong trình xử lý sự kiện của bạn, bạn có thể thấy cờ được đặt và không thực hiện hành động nào. – prprcupofcoffee
WinForms hoặc WPF? – Paparazzi
sử dụng bảng cập nhật – sajanyamaha