2015-12-21 4 views
-3

Я пытаюсь создать простую форму приложения в форме окна. Если я выберу поле со списком, представляющее страны. то снова, если я выберу какую-либо страну, тогда в других состояниях со списком этой страны придет. Наконец, если мы выберем одно состояние, то соответствующие города придут в другое поле со списком. Во-первых, если я выполняю свою операцию, он работает нормально. Но второй раз, если Я делаю какие-либо изменения, то это конкатенация .. вот мой код-Как избежать конкатенации в поле со списком

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedItem.ToString() == "INDIA") 
    { 
     string[] Country = { "Andhra Pradesh", 
     "Karnataka","Maharashtra"}; 
     comboBox2.Items.AddRange(Country);    
    } 
    else if (comboBox1.SelectedItem.ToString() == "USA") 
    { 
     comboBox2.Items.AddRange(new string[] { "Alabama", 
     "Alaska", "Arizona"}); 
    } 
    else if (comboBox1.SelectedItem.ToString() == "CHAINA") 
    { 
     comboBox2.Items.AddRange(new string[] { "Beijing Municipality", 
     "Tianjin Municipality", "Hebei Province"}); 
    }   
} 

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) 
{   
    if (comboBox2.SelectedItem.ToString() == "Andhra Pradesh") 
    { 
     comboBox3.Items.AddRange(new string[] { "Adilabad","Anantapur","Chittoor","Kakinada","Guntur","Hyderabad",   "Khammam","Kurnool","Medak","Nizamabad","Visakhapatnam","Warangal","Eluru"}); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Karnataka") 
    { 
     comboBox3.Items.AddRange(new string[] { "Bengaluru Urban", "Bengaluru Rural", "Chikkaballapur", "Kolar", "Mysuru" }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Maharashtra") 
    { 
     comboBox3.Items.AddRange(new string[] { "Mumbai", "Pune", "Nagpur", "Thane", "Nashik" }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Alabama") 
    { 
     comboBox3.Items.AddRange(new string[] { "Margaret","Helena","Southside","Mountain Brook","Vestavia Hills"}); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Alaska") 
    { 
     comboBox3.Items.AddRange(new string[] { "Anchorage", "Fairbanks", "Juneau", "Sitka", "Ketchikan" }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Arizona") 
    { 
     comboBox3.Items.AddRange(new string[] { "Apache Junction", "Avondale", "Benson", "Buckeye", "Bullhead City" }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Beijing Municipality") 
    { 
     comboBox3.Items.AddRange(new string[] { "Dongcheng", "Xicheng", "Chaoyang", "Fengtai ", "Miyun " }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Tianjin Municipality") 
    { 
     comboBox3.Items.AddRange(new string[] { "Heping", "Hedong", "Xiqing", "Nankai", "Beichen" }); 
    } 
    else if (comboBox2.SelectedItem.ToString() == "Hebei Province") 
    { 
     comboBox3.Items.AddRange(new string[] { "Baoding‎", "Bazhou", "Chengde‎", "Handan‎", "Langfang‎" }); 
    }   
} 

Пожалуйста, предложите мне, ребята, что я должен модифицирую в моем коде?

+0

Вы пробовали отлаживать свой код? – xxbbcc

+0

nope brother @xxbbcc – chikun

+0

Обязательно очистите поле со списком перед привязкой. Используйте comboBox2.Clear – Moe

ответ

0

Поскольку каждый раз, когда вы выбираете что-то из ComboBox1 (страны) или combobox2 (государства) Вы хотите, чтобы «начать все сначала», вы должны сначала очистить эти вторичные выпадающие списки на соответствующие события, такие как:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    combobox2.Items.Clear(); 
    combobox3.Items.Clear(); 
    . . . 
} 

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    combobox3.Items.Clear(); 
    . . . 
} 

Кроме того, было бы лучше дать вашим контрольным значащим именам. Вместо того, чтобы позволить им сохранять свои имена по умолчанию, дайте им имена, такие как comboboxCountries, comboboxStates, comboBoxCities. Это облегчит отладку.

Наконец, было бы лучше сохранить список мест (стран, штатов и провинций, городов) в базе данных или, по крайней мере, в каком-либо отдельно сохраненном списке. Помещая их волей-неволей в лабиринте, если блоки в конечном итоге заставят вас идти с косой.

+1

благодарит много брата .. Он решил мой проблема. Теперь я понял . Эта функция clear() очищает элементы списка. Спасибо снова. Ваше предложение очень ценится. В следующий раз я дам дружеские имена :) – chikun

+1

@chikun Если его ответ вам нужен, вы должны его принять (отметьте его галочка) –

+0

уже принято :) @KevinWells – chikun

Смежные вопросы