PDA

View Full Version : سوال: مشکل در آیتم های کنترل ListBox



masoud.a
پنج شنبه 16 شهریور 1391, 22:55 عصر
سلام
تو برنامم یه لیست باکس با 5 تا item دارم.عملکردشون درسته یعنی وقتی با mouse رو هرکدوم کلیک میکنم کار موردنظر رو انجام میده ولی با Arrow Key به هرکدوم از آیتم ها که میرسم خودبخود انتخاب میشه.مثلا وقتی از آیتم 1 به 5 میخوام برم ، آیتم های 2و3و4 هم یه بار اجرا میشن.
میشه کمکم کنید که مشکلم حل شه.ممنون

harani
پنج شنبه 16 شهریور 1391, 23:18 عصر
خب اینکه مسلمه با فشردن کلیدهای جهت دار به ترتیب تک تک آیتمها انتخاب میشن . شما میخواین گام انتخاب رو از یک یه یک تغییر بدین ؟؟؟؟؟؟؟؟ یعنی مثلاً میخواین بعد از انتخاب آیتم 1 آیتم 5 انتخاب بشه و برعکس ؟؟؟؟؟؟؟؟؟؟

masoud.a
پنج شنبه 16 شهریور 1391, 23:31 عصر
خب اینکه مسلمه با فشردن کلیدهای جهت دار به ترتیب تک تک آیتمها انتخاب میشن . شما میخواین گام انتخاب رو از یک یه یک تغییر بدین ؟؟؟؟؟؟؟؟ یعنی مثلاً میخواین بعد از انتخاب آیتم 1 آیتم 5 انتخاب بشه و برعکس ؟؟؟؟؟؟؟؟؟؟

من میخواستم از 1 تا 5 بدون هیچ کاری بره بعد اونجا با دکمه enter کار موردنظر 5 رو انجام بده.
تازه میخواستم درمورد این قسمت هم بپرسم(چجوری با enter زدن...)

harani
پنج شنبه 16 شهریور 1391, 23:40 عصر
خب اینکه کاری نداره تو رویداد selectedindex change مربوط به listboxت کدی ننویس بعد تو رویداد Keydown اون بگو هر وقت enter زده شد (با اینکه مشکل نداری !!) فلان دستور انتخاب بشه . اگه بازم نفهمیدس بگو که سعی کنم برنامشو درست کنم .

harani
پنج شنبه 16 شهریور 1391, 23:46 عصر
بیا اینم کدش ok دیگه ؟؟؟؟؟؟

private void listBox1_KeyDown(object sender, KeyEventArgs e)//a
{
if (e.KeyCode == Keys.Enter)//b
{
MessageBox.Show("choose index Item = " + listBox1.SelectedIndex);//b
}
}

masoud.a
جمعه 17 شهریور 1391, 00:12 صبح
بیا اینم کدش ok دیگه ؟؟؟؟؟؟

private void listBox1_KeyDown(object sender, KeyEventArgs e)//a
{
if (e.KeyCode == Keys.Enter)//b
{
MessageBox.Show("choose index Item = " + listBox1.SelectedIndex);//b
}
}


این کارها رو هم انجام دادم ولی چیزی تغییر نکرد.شاید من اشتباه دارم انجام میدم.شما با این کد چیکار خواستین بکنید؟ با MessageBox میخواین نشون بدید؟

harani
جمعه 17 شهریور 1391, 00:44 صبح
من گفتم که کاربر رو هر آیتمی بود اگر Enter رو فشار داد ایندکس اون آیتم انتخابی تو مسیج باکس نشون داده بشه ؟؟؟ خب دقیقاً بگید چی میخواین تا من راهنماییتون کنم . به نظر من کدتون همینه به جای میسج باکس از دستوری که میخواین استفاده کنید (listBox1.SelectedIndex نماینگر آیتم انتخابی هستش) بگین که راهنمایی کنم .

masoud.a
شنبه 18 شهریور 1391, 00:44 صبح
درسته ولی هنوز مشکل اولم حل نشد.همون که گفتم مثلا وقتی از آیتم 1 به آیتم 2 با کلیدهای جهت دار میرم انگار خودش enter میزنه و کدش رو اجرا میکنه با این که نمیخوام آیتم2 اصلا اجرا شه

harani
شنبه 18 شهریور 1391, 01:02 صبح
مطمئنید که تو رویداد selected index change لیست باکستون چیزی ننوشتی (دو بار که روش کلیک نکردید) برید تو قسمت Event لیست باکس روی رویداد selected index change راست کلیک کنید و گزینه ی reset رو انتخاب کنید . اگر میتونید فالتونو ضمیمه کنید . اگهم حجمش برای ضمیمه کردن زیاده بگید که تو پیغام خصوصی میلم رو بدم و برام میل کنید . چه بهتر قسمتهایی که تو کدتون listbox داره رو تو اینجا درج کنید .

samadblaj
شنبه 18 شهریور 1391, 01:09 صبح
درود امیدوارم بدردت بخوره...

masoud.a
شنبه 18 شهریور 1391, 11:26 صبح
آقایون دستتون درد نکنه.:تشویق:

t.zeirani
شنبه 18 شهریور 1391, 13:06 عصر
بیا اینم کدش ok دیگه ؟؟؟؟؟؟

private void listBox1_KeyDown(object sender, KeyEventArgs e)//a
{
if (e.KeyCode == Keys.Enter)//b
{
MessageBox.Show("choose index Item = " + listBox1.SelectedIndex);//b
}
}

سلام میشه فضای نام KeyCode رو بگین،چون من مشابه همچین چیزی استفاده میکیم ولی وقتی e. میزنم چهارتا گزینه میاره که توش KeyCode نیست

samadblaj
شنبه 18 شهریور 1391, 13:19 عصر
فضایی نیاز نیست ، توجه داشته باش باید رویدادا key_down رو انتخاب کنید.