PDA

View Full Version : رخدادی برای ListBox در زمان اضافه شدن ایتمی به آن



ahmari.f
یک شنبه 24 اردیبهشت 1396, 17:12 عصر
با سلام
من تو برنامه م چند تا لیست باکس دارم، اولی در زمان لود فرم لیست تمام استان ها رو نمایش میده ، کاربر استان های موردنظر خودش رو به لیست باکس دوم اضافه می کنه، می خوام به محض اضافه شدن یه استان به لیست باکس دوم، یا حذف یه استان ، شهرهای مربوط به اون استان در لیست باکس دیگه ای نمایش پیدا کنه.. نمی خوام button بزارم و می خوام به محض تغییر ایتم های یه لیست باکس، ایتم های لیست باکس دیگه تغییرکنه و مجدد از دیتابیس خونده بشه..

کد سلکت شدن شهرها رو تو کدوم رخداد لیست باکس استان های انتخاب شده باید بنویسم ؟
لطفا راهنمایی کنید. ..
امیدوارم واضح توضیح داده باشم

Mahmoud.Afrad
یک شنبه 24 اردیبهشت 1396, 17:24 عصر
کاربر استانهای مورد نظرش را به چه صورت به لیست باکس دوم اضافه(یا حذف) میکنه؟(کد قرار بدید) هر جا کد نوشتید که این کار انجام بشه، همانجا شهرها رو هم بدست بیارید و اضافه(یا حذف) کنید.

ahmari.f
دوشنبه 25 اردیبهشت 1396, 13:13 عصر
خیلی ممنون .. موقع اضافه کردن درست شد، تو buttonای که کاربر استان رو اضافه میکرد کد رو نوشتم..
فقط زمانیکه یکی از استان های انتخاب شده رو حذف می کنه، من نوشتم که listbox شهرها رو خالی کنه و دوباره بر اساس مقادیر جدید استان ها شهرها رو تو لیست باکس ادد کنه ولی مقادیر قبلی لیست باکس رو پاک نمی کنه !!

private void btn_DelPV_Click(object sender, EventArgs e) {
if (li_SelectedProvinces.SelectedIndex == -1)
{
MessageBox.Show("Please select an item first!");
}
else
{


li_SelectedProvinces.Items.Remove(li_SelectedProvi nces.SelectedItem);


li_Cities.DataSource = null;
li_Cities.Items.Clear();
Load_cities();


}
}

این کد دیلیت هست

load_city تابعی هست که شهرها استان انتخاب شده رو از دیتابیس می خونه :


foreach (string provinceselect in li_SelectedProvinces.Items) {
province += ",'" + provinceselect + "'";
}


var cmd = new OracleCommand("SELECT A.CITYNAME FROM HR.FOCUSCITIES A, HR.FOCUSPROVINCES B WHERE A.PROVINCE = B.PROVINCEINDEX AND B.PROVINCENAME in(null" + province + ") order by 1", oracon);
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet DS = new DataSet();
da.Fill(DS);


li_Cities.DisplayMember = "CITYNAME";
li_Cities.ValueMember = "CITYINDEX";
li_Cities.DataSource = DS.Tables[0];