نمایش نتایج 1 تا 14 از 14

نام تاپیک: جلوگیری از تیک زدن آیتم های CheckedListBox

  1. #1
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566

    Unhappy جلوگیری از تیک زدن آیتم های CheckedListBox

    با سلام خدمت دوستان
    من یه CheckedListBox دارم که نمی خوام کاربر بتونه بعضی هاشو Checked بکنه تویه رویداد کلیک تونستم مانع اینکار بشم ولی با کیبورد نمی دون چطوری جلوشو بگیرم ؟؟ کافیه روی اون آیتم Spacebar رو بزنه .

  2. #2
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    از رویداد ItemCheck استفاده کنید، مثلا:

    private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
    {
    if(e.Index == 2) e.NewValue = CheckState.Unchecked;
    }

    کد فوق باعث میشه که گزینه سوم هیچوقت checked نشه.

  3. #3
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    خیلی ممنون دوست عزیز
    یه سوال دیگه هم داشتم اگه لطف کنین !!
    من تویه فرمم دوتا ‍CheckedListBox دارم که تویه لود فرمم آیتم هاشونو می سازم (Add) حالا مشکل اینه که یکی از اونا رو وقتی میرم یه آیتم رو تیک کنم می پره یا قاطی میکنه مثلا اگه تیک 2 رو می زنم 3و4 رو تیک می زنه یا اینکه اصلا نمیذاره تیک بزنم چرا اینطوری میشه ؟؟؟؟

  4. #4
    کاربر دائمی آواتار MH2538
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    No Man Land
    پست
    537
    سلام
    احتمالاًشما در کدتون اشکالی وجود داره.
    اگر براتون ممکنه کد مربوط به بخش پر کردن آیتم‌های چک‌لیست‌باکستون رو بزارید

  5. #5
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    من تویه فرمم دوتا ‍CheckedListBox دارم که تویه لود فرمم آیتم هاشونو می سازم (Add) حالا مشکل اینه که یکی از اونا رو وقتی میرم یه آیتم رو تیک کنم می پره یا قاطی میکنه مثلا اگه تیک 2 رو می زنم 3و4 رو تیک می زنه یا اینکه اصلا نمیذاره تیک بزنم چرا اینطوری میشه ؟؟؟؟
    چون کدها رو در رویداد Load مینویسید، پس یعنی اینکه رویداد ItemCheck رو قبلا برای CheckedListBox ایجاد کردید و در اینصورت، وقتی که یک آیتم رو Add میکنید، و سریعا اون رو تیک بزنید، ممکنه مشکلی پیش بیاد. در هر صورت همانطور که MH2538 گفتند، از روی کد میشه تشخیص داد که چرا اینطور میشه.

  6. #6
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    مشکلم حل شد ولی نمی دونم چه ربطی داشت ؟؟؟
    اونجاییکه آیتم هام رو Add می کردم Trim که گذاشتم حل شد.

  7. #7
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    یه سوال دیگه :
    چطوری میشه برای تک تک آیتم های CheckedListBox خاصیت Tag تعریف کرد ؟؟؟

  8. #8
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    در حالت معمولی، آیتم های CheckedListBox چنین قابلیتی ندارند، آیتم های CheckedListBox از نوع Object خواهند بود، پس بر اساس آیتمی که در CheckedListBox قرار میگیره، یک آیتم میتونه حاوی خاصیت Tag باشه و آیتم دیگر میتونه این خاصیت رو نداشته باشه، مثلا اگر یک شیئ از نوع Control رو در آیتم های آن قرار بدید، میتونید از خاصیت Tag برای آن آیتم استفاده کنید، مثلا:

    Control A = new Control();
    A.Tag = "SYYYYYYYYS";
    checkedListBox1.Items.Add(A);
    this.Text = (string)((Control)checkedListBox1.Items[0]).Tag;

  9. #9
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    چطوری میشه یه این آیتم هایی که اضافه شده متن هم اضافه کرد ؟؟؟؟

  10. #10
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    چطوری میشه یه این آیتم هایی که اضافه شده متن هم اضافه کرد ؟؟؟؟
    این سوالی که پرسیدی برای من هم یک مشکل شد! من هم نمیدونم چرا اینطور شده؟

    وقتی که یک شیئ رو در آیتمهای CheckedListBox قرار میدیم، متد ToString از این آیتمها صدا زده میشه و با توجه به خروجی این متد، یک متن متناظر با آن شیئ در لیست ایتمها نمایش داده میشه، مثلا کلاس زیر رو در نظر بگیرید:

    public class TEST
    {
    private string text;
    public TEST(string text)
    {
    this.text = text;
    }
    public override string ToString()
    {
    return this.text;
    }
    }

    و یک شیئ از نوع کلاس TEST (کلاس مذکور) را در آیتمهای CheckedListBox قرار میدیم:

    TEST test = new TEST("Hello");
    checkedListBox1.Items.Add(test);

    که همانطور که میبینید، برای نمایش شیئ test، متد ToString رو صدا میزنه.

    اما نفهمیدم چرا برای کلاس Controls چنین حالتی رخ نمیده؟
    از دوستان کسی تجربه ای در این زمینه داره که به چه دلیلی این حالت رخ میده؟

  11. #11
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566

    Unhappy

    من اینجوری تکست اضافه می کنم ولی تویه Cast کردن گیر میده :

    private void Form1_Load(object sender, EventArgs e)
    {
    for (int i = 0; i < 10; i++)
    {
    Control tmp = new Control();
    tmp.Tag = i.ToString();
    checkedListBox1.Items.Add(tmp);
    checkedListBox1.Items[i] = string.Format("ItemNo {0}", i.ToString());
    }
    }

    private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
    {
    this.Text = (string)((Control)checkedListBox1.Items[e.Index]).Tag;
    }

    فکر کنم روشش غلطه ؟؟؟؟

  12. #12
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    آقا کم کم داریم از موضوع این تاپیک می پریم به یک موضوع دیگه

    راستش وقتی که کد زیر رو مینویسید، یک شیئ کنترل در آیتمها قرار میگیره:

    checkedListBox1.Items.Add(tmp);

    و وقتی که در خط بعد کد زیر رو مینویسید، یک شیئ string جایگزین شیئ کنترل میشه!

    checkedListBox1.Items[i] = string.Format("ItemNo {0}", i.ToString());

    در واقع در آیتم شماره i دیگه شیئ tmp وجود نداره و یک string بجای اون قرار گرفته.
    پس آیتم شماره i یک داده از نوع string خواهد بود و نمیشه این نوع داده رو به نوع Control تغییر داد.

  13. #13
    کاربر دائمی آواتار iman_s52
    تاریخ عضویت
    مهر 1383
    محل زندگی
    اصفهان
    پست
    566
    پس می کین چکار میشه کرد دیگه روی Tag حساب نکنم ؟؟؟؟ روشم رو عوض کنم ؟؟؟

  14. #14
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    متاسفانه دلیل عدم نمایش متن آیتمهای از نوع کنترل رو نمیدونم. (چه نیازی به خاصیت Tag دارید؟)

    در هر صورت چون موضوع مورد بحث با موضوع تاپیک متفاوت شده، بهتره برای یافتن دلیل یا راه حل، یک تاپیک جدید برای آن ایجاد کنید تا این موضوع در یک تاپیک جدید به بحث گذاشته بشه تا سایر دوستان هم از آن مطلع شده و مباحث موجود در تاپیکها بصورت مرتب تری آرشیو شوند که در نتیجه جستجوی مطالب گذشته رو برای سایر افراد ساده تر میکنه.

    من و شما و سایر دوستان در اون تاپیک بحث رو با هم ادامه بدیم :-)

تاپیک های مشابه

  1. سوال در رابطه با CheckedListBox
    نوشته شده توسط امیر تورانی در بخش VB.NET
    پاسخ: 7
    آخرین پست: دوشنبه 14 فروردین 1391, 16:16 عصر
  2. CheckedListBox
    نوشته شده توسط Neda_Bagheri در بخش VB.NET
    پاسخ: 12
    آخرین پست: یک شنبه 11 شهریور 1386, 09:10 صبح
  3. آپدیت کردن CheckedListBox در vb.net 2005
    نوشته شده توسط sh در بخش VB.NET
    پاسخ: 0
    آخرین پست: سه شنبه 13 دی 1384, 20:36 عصر
  4. پر کردن checkedlistbox
    نوشته شده توسط امیر تورانی در بخش VB.NET
    پاسخ: 0
    آخرین پست: دوشنبه 12 دی 1384, 16:05 عصر
  5. حذف گزینه انتخاب شده از checkedlistbox
    نوشته شده توسط PrinceDotNet در بخش VB.NET
    پاسخ: 0
    آخرین پست: شنبه 05 آذر 1384, 21:13 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •