0 امتیاز
سلام

من یه DataTable دارم که دارای دو ستون هستش و میخوام مقادیر ستون اول رو به عنوان دیتاسورس listbox1 و مقادیر ستون دوم رو به عنوان دیتا سورس listbox2 در نظر بگیرم؟.

سلام

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox2.SelectedIndex = listBox1.SelectedIndex;
        }

        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.SelectedIndex = listBox2.SelectedIndex;
        }

 

 

توسط (2,595 امتیاز) 5 15 90

اگر datasource رو برابر با منبع داده ای قرار بدم رویداد SelectedIndexChanged اتفاق میفته

در خط کد زیر دیتا سورس listbox2 رو مقدار دهی کردم

 listBox2.DataSource = new string[] { "one", "two", "three" };

 

یعنی قبل از listbox1 و هنوز listbox1 مقدار دهی نشده بنابراین کد زیر ارور میده

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    listBox1.SelectedIndex = listBox2.SelectedIndex;
}

و از ارور میشه متوجه شد که listbox1 هنوز آیتمی نداره که بخوای با استفاده از ایندکسش انتخابش کنی، و دلیلش اینه که با مقدار دهی datasource رویداد SelectedIndexChanged اتفاق میفته.

 

اما وقتی از کد زیر استفاده کنم

            foreach (string item in new string[] { "one", "two", "three" })
            {
                listBox2.Items.Add(item);
            }

هیچ خطایی رخ نمیده چون رویداد SelectedIndexChanged اتفاق نمیفته.

 

امیدوارم تونسته باشم توضیح بدم smiley

توسط (2,595 امتیاز) 5 15 90

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,920 کاربر

دسته بندی ها

...