[英]Weird behavior in combobox C#
我的組合框中的行為很奇怪。 我有兩個組合框,一個是cboSede一個,另一個是cboGroup。 CboSede啟用cboGroup。 我已經以其他形式完成了此操作,但是在這里我收到了以下消息:ArgumentOutOfRangeException未由用戶代碼處理。 這個想法是,如果用戶未在cboSede中選擇任何值,則不會啟用cboGroup;另一方面,如果用戶在cboSede中選擇有效選項,則會啟用cboGroup。
這是我的代碼:
cboSede的SelectedIndexChanged
private void cboSede_SelectedIndexChanged(object sender, EventArgs e)
{
if (Util.Security.ConexionBD)
{
if (Convert.ToInt32(cboSede.SelectedIndex) == 0 || Convert.ToInt32(cboSede.SelectedIndex) == -1)
{
cboGroup.Enabled = false;
cboGroup.SelectedIndex = 0;
}
else
{
this.FillGroupCombo();
cboGroup.Enabled = true;
}
}
else
MessageBox.Show("Error", "Warning",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
FillGroupCombo函數
private void FillGroupCombo()
{
try
{
Entity.Group objGroup = new Entidad.Group ();
objGroup .IdSede = Convert.ToInt32(cboSede.SelectedValue);
objGroup = Control.Group.ListBySede(objGroup );
if (objGroup != null && objGroup.ListGroup.Count > 0)
{
Entity.Group objMsje = new Entity.Group();
objMsje.IdGroup = -1;
objMsje.Name= "--- Select group ---";
objGroup.ListGroup.Insert(0, objMsje);
}
else
{
Entity.Group objMsje = new Entity.Group();
objMsje.IdGroup = 0;
objMsje.Name= "-- No groups found --";
objGroup.ListGroup.Insert(0, objMsje);
}
Util.Utilitario.FillCombo(objGroup.ListGroup, this.cboGroup, "IdGrupo", "Name");
}
catch (Exception ex)
{
Util.Security.Insert(ex);
Util.Security.SaveLog(ex.Message);
}
}
知道為什么會這樣嗎?
這個
if (Convert.ToInt32(cboSede.SelectedIndex) == 0 || Convert.ToInt32(cboSede.SelectedIndex) == -1)
{
cboGroup.Enabled = false;
cboGroup.SelectedIndex = 0;
}
當SelectedIndex == -1
且您的comboBox
實際上沒有項目時,將OutOfRange
(當index = 0
,它是OutOfRange
)
你可以給一個if
條件
if (cboGroup.Items.Count > 0)
cboGroup.SelectedIndex = 0;
這樣,它首先檢查comboBox
確實有任何東西。 如果沒有,則不會產生OutOfRange
錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.