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

نام تاپیک: کار با تعدادی Object خاص

  1. #1

    کار با تعدادی Object خاص

    من یه فرم برفرض شامل 20 تا Object دارم میخوام وقتی Event خاصی رخداد ,Property Text از Objectهای برفرض 10 تا 15 یک مقدار خاصی قرار داده بشه اما هر دفعه(مثلا") Objectهای 10 تا 15 رو یکی نمیگیره و هر سری Objectهای انتخابی فرق دارند ممنون میشم راهنمایی کنید من باید به چه صورت عمل کنم اگر باید از آرایه استفاده کنم Objectهارو چه جوری داخل آرایه قرار بدم

  2. #2
    کسی نمیدونه لطفا" اگر میدونید راهنمایی کنید

  3. #3
    میشه کمی بیشتر توضیح بدبد.
    اگر ممکنه یک مثال بگذارید.

    :موفق:

  4. #4
    کاربر تازه وارد آواتار small_programmer
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    تهران
    پست
    81
    کلاس ArrayList چطور است؟
    امتحان کرده اید؟

  5. #5
    به طور مثال من 20 تا Label دارم و یک Button که با هر دفعه Click کردن این Button یکی از اعداد 1 تا 5 وارد یک متغیری به نام X میشود حالا من میخوام اگر X عدد1 بود یه متن خاصی توی Label های 2 تا 16 قرار بگیرد اگر X مقدارش 2 بود این متن توی Label های 3 تا 17 نشان داده بشه اگر X مقدار 3 داشت این متن توی Label های 4 تا 18 نشان داده بشه و بهمین ترتیب . اما من از شماره Control ها در فرم استفاده کردم (This.Controls) اما به طور مثال Label های 3 تا 17 اگر دفعه اول ...,Label1 ,Label2,Label3,Label4 است دفعه دوم ...,Label3,Label7,Label6,Label5 انتخاب میشود و هر دفعه Label های انتخابی 3 تا 17 فرق دارند
    برای حل این مشکل باید چیکار کنم که هر دفعه Object های انتخابی تغییر نکنند

  6. #6
    کلاس ArrayList چطور است؟
    چه جوری کنترلها رو در آرایه قرار بدم؟
    ممنون میشم بیشتر توضیح بدید

  7. #7
    خیلی فوری لطفا" راهنمایی کنید :cry:

  8. #8
    کاربر تازه وارد آواتار small_programmer
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    تهران
    پست
    81
    یک شی از کلاس ArrayList بساز و سپس با استفاده از متد Add آن که متغییر هایی از نوع Object می گیرد کنترل هایت را به اضافه کن و با [] مانند آرایه به اشیاء خود دسترسی داری.
    امیدوارم این روش کمک کند
    :موفق:

  9. #9
    من منظورم رو بد بیان کردم استفاده از ArrayList رو میدونم :oops: اما
    من برای اینکه 3 تا Button را در آرایه قرار بدم از این دستور استفاده میکنم
    			ArrayList list = new ArrayList();
    list.Add(this.button1);
    list.Add(this.button2);
    list.Add(this.button3);

    و برای خواندن آنها از آرایه از این دستور
    			for(int counter = 0;counter < list.Count;counter++)
    MessageBox.Show(((Button)(list [counter])).Text);

    اما اضافه کردن 50 تا Control به آرایه با دستور Add کار منطقی نیست باید راه دیگری هم وجود داشته باشد ممنون میشم اگر من را راهنمایی کنید از توجه شما ممنونم :)

  10. #10
    دوست عزیز لازم نیست تک تک button ها رو add کنی. کافیه button ها رو همین جا توی کد new کنی. لذا از ابتدا میتونی یه آرایه از button ها یا هر کنترل دیگری داشته باشی و آنها را new کنی و بعد به راحتی با اندیس هاشون کار کنی. :sunglass:

  11. #11
    این Button ها باید از قبل باشه من نمیخوام اینجا New کنم و راجع به اینکه آرایه ای از Control ها ایجاد کنم و با اندیس Control ها کار کنم (توی Vb6 بود و خود کنترلها نامشان یکی بود آرایه می شدند و با اندیسهاشون می شد کار کرد اما اینجا من نمیدونم باید چه جوری این کار را کرد) ممنون میشم اگر منظورتون رو با کد بیان کنید ؟

  12. #12

    Label[ ] LabelArray;
    LabelArray = new Label[ 20 ]; // for 20 label
    for ( int index = 0; index < 20; index++ )
    LabelArray[ index ] = new Label();

    و به همین ترتیب می تونید به سایر property ها دسترسی داشته باشی.
    :sunglass:

  13. #13
    ابتدا از راهنمائیتون ممنونم
    در این حالت باید شماره تمام Label ها پشت سز هم باشد یعنی Label1 , Label2 , ...,Label19,Label20 درسته؟
    حالا اگر Label ها پشت سر هم نبود چی؟یعنی label هایی که در نظر دارم Label1 ,Label2 ,Label34,Label33,Label35 و به این صورت باشد
    با تشکر

  14. #14
    کاربر تازه وارد آواتار small_programmer
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    تهران
    پست
    81
    کد زیر را برای اینکار نوشتم



    private void setControlsText(ContainerControl form,Type controlType,string namePrefix,int from,int to,string valueToSet)
    {
    SortedList st1=new SortedList();
    foreach(Control control in form.Controls)
    {
    if(control.GetType()==controlType&#41 ;
    {
    st1.Add(control.Name,control);
    }
    }

    for(int i=from;i<=to;i++)
    {
    if(st1[namePrefix+i.ToString()&#93 ; as Control !=null)
    {
    ((Control)st1[namePrefix+i.ToStrin g()]).Text=valueToSet;
    }
    }

    }

    تابع setControlsText چند پارامتر می گیرد که:
    اولی همان فرم یا هر ContainerControl دیگری است
    دومی نوع کنترل است (برای مشکل شما (typeof(Label )
    سومی نام پیشوند کنترلهاست (label)
    چهارمی و پنجمی از شماره این تا شماره این است
    ششمی هم مقداری است که باید برای Text ست شود.

    البته با در نظر گرفتن این مطلب که نام کنترل های شما به ترتیب اعداد باشد.

    مثال :

    private void button2_Click(object sender, System.EventArgs e)
    {
    setControlsText(this,label1.GetType()/*or typeof(Label)*/,"label",2,5,"hello");
    }


    امیدوارم مفید باشد
    :موفق:

  15. #15
    من مت
    حالا اگر Label ها پشت سر هم نبود چی؟یعنی label هایی که در نظر دارم Label1 ,Label2 ,Label34,Label33,Label35 و به این صورت باشد
    من متوجه منظورتون نمی شم ! شما می خواهین با label کار کنین و بهش دسترسی داشته باشین , پس این شماره ها که میگین چیه؟!! :sunglass:

  16. #16
    شما می خواهین با label کار کنین و بهش دسترسی داشته باشین , پس این شماره ها که میگین چیه؟!!
    من میخوام Text را Set کنم اما در بعضی Label های فرم خوب باید Label ها از هم مجزا بشوند و بتونم از رو شمارشون بدونم در چه Label چه Text را باید قرار بدم
    مثل اینکه چاره ای نیست ترتیب شماره ها باید باشه :wink:
    از کدهایی که فرستادید بسیار ممنونم . حل شد :)

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

  1. پاسخ: 3
    آخرین پست: دوشنبه 20 آبان 1387, 12:00 عصر
  2. Object reference not set to an instance of an object.
    نوشته شده توسط mammad_kami در بخش C#‎‎
    پاسخ: 27
    آخرین پست: سه شنبه 24 مهر 1386, 15:58 عصر
  3. Object reference not set to an instance of an object
    نوشته شده توسط negar_1986 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 02 مهر 1386, 04:25 صبح
  4. Object reference not set to an instance of an object
    نوشته شده توسط almanden در بخش C#‎‎
    پاسخ: 9
    آخرین پست: سه شنبه 16 مرداد 1386, 19:53 عصر
  5. خطای Object reference not set to an instance of an object
    نوشته شده توسط sunboy در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 11 شهریور 1383, 10:50 صبح

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

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