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

نام تاپیک: یک سوال از سی شارپ

  1. #1

    یک سوال از سی شارپ

    سلام ای ول چه انجمن سی شارپ توپی
    اقا 3 تا دکمه داریم با نامهای a1,a2,a3
    یه random با نام RN می سازیم که بین 1-3 تغیر کنه
    حالا می خواهیم
    دکمه a[RN] قرمز شه چه جوری؟
    مثلا تو Action script می نویسیم
    root["a"+RN] va tamam_

    این شیوه دستیابی به عناصر تو C#‎.net چه جوریه تو رو خدا یکی بگه

  2. #2
    می تونی هر سه دکمه رو توی یه آرایه قرار بدی، بعد عدد رندومی که تولید میشه رو به عنوان ایندکس آرایه استفاده کنی. یعنی array[RN]. بعد رنگ اون رو قرمز کنی.
    (برای تغییر رنگ هم که می تونی از BackColor استفاده کنی).

  3. #3
    منم می خواستم دقیقا همین کار رو انجام بدم اما چه جوری میشه دکمه را درون آرایه قرار داد؟

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    تهران
    پست
    94
    بدون اینکه کنترلها رو خودت داخل آرایه بذاری با این دستور هم راحت میتونی بهشون دسترسی داشته باشی
    مثلا" سه تا Button روی فرمت بذار با تابع

    private int RandomCharcter(int y)
    {
    Random Number = new Random();
    int rndNum = Number.Next(0, y);
    return rndNum;
    }

    یه عدد تصادفی تولید کن و با دستور

    private void Form1_Load(object sender, EventArgs e)
    {
    int Temp = RandomCharcter(3);
    this.Controls[Temp].Visible = false;
    }

    میتونی خاصیت Visible دکمه ها رو تغییر بدی (هر control که به فرم اضافه میکنی یه شماره بهش اختصاص داده میشه با دستور
    [نام کنترل یا شماره کنترل]this.controls
    میتونی بهشون دسترسی داشته باشی

  5. #5
    ببخشید آخه من برای کاری که می خوام انجام بدم می خوام همیشه اسم آبجکتام یک بخش ثابت مثل a داشته باشه و فقط یک قسمت از اون مثل 1,2,3,4,5,............
    متغییر باشه و تعداد دکمه هارم از کاربر تو یه text box بپرسه و به اون تعداد دکمه ایجاد کنه!
    مشکله من اونجاس که وقتی می خوام به دکمه ها توسط اسمشون دسترسی پیدا کنم C#‎
    اون اسمرو نمی شناسه
    به مثالی که به زبان Action script زدم نگاه کنین می خوام به این صورت به شی دسترسی پیدا کرد اما نمیشه
    اومدم اون متغییر عددی رو به String تبدیل کردم و به a که همیشه ثابته اضافه کردم و تغریبن مشکل حل شد و اینبار کامپایلر از طریقه دسترسی به اسم ایراد نگرفت اما بعد گفت شما به یک String نمی تونین BackColor رو نسبت بدین ):

  6. #6
    بهتره اینطوری بگم
    root["a"+RN] l_ تو اکشن اسکریپ این جمله وقتی RN=1 است یعنی دکمه a1
    اما تو سی شارپ a1 میشه اما نه به عنوان دکمه a1 در واقع نمی فهمه منظور از این a1 همان دکمه a1 است این مشکل رو چطوری میشه حل کرد؟؟

  7. #7
    سلام
    تو اکشن اسکریپت شما میتونید این کار رو کنید ( مثل php و با استفاده از لیترالها ) اما تو #C اصلا اینطوری فکر نکن.
    بهترین راه همون استفاده از آرایه است.

  8. #8
    از اینکه حداقل روشن شد که این طوری نمیشه نوشت خیلی خوبه حداقل تکلیف روشن و دیگه دنبال راهی نمی گردم که به این روش یا Syntax بنویسم خودمم به آرایه فکر کرده بودم اما نتونستم دکمه ها رو تو آرایه بریزم حالا میشه یه نفر بگه چجوری میشه یک سری دکمه که تعدادشون دست کاربر رو تو یک آرایه ریخت؟؟
    دکمه هایی با نامهای a1,a2,a3,.............?

  9. #9
    اول بگو 2003 هستی یا 2005؟
    چون تو 2005 میتونی از امکانات generic هم استفاده کنی...
    آخرین ویرایش به وسیله حسین حریری : یک شنبه 08 مرداد 1385 در 14:23 عصر

  10. #10
    2003
    چی هس اینی که گفتی؟

  11. #11
    کاربر دائمی آواتار aidinwashere
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    پشته سرت
    پست
    632
    نسخه Visual Studio که استفاده میکنید که نشان دهنده نسخه .net شما نیز هست.

  12. #12
    اینو میدونم که ورژن به چی میگن
    ایشون گفتن از generic استفاده کن این چیه؟

  13. #13
    کاربر دائمی آواتار aidinwashere
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    پشته سرت
    پست
    632
    به نظر من شما دوستی خودت رو با Google کمی شدید تر کن.
    تک تک نتایج این صفحه بدرد شما میخوره:
    http://www.google.com/search?hl=en&q...=Google+Search
    با احترام.

  14. #14
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111

    Smile

    اصلا نیازی به ارایه نیست این کدها را ببین داخل این کد کاربر یک عدد را داخل textbox قرار میده
    برنامه به همون تعداد براش کمه ایجاد میکند که نامشون با a شروع میشه حالا با قرار دادن یک عدد در یک textbox دیگری شماره دکمه ای که میخواهد رنگ ان عوض شود را میدهد و دکمه تغییر رنگ میدهد
    private void button1_Click(object sender, EventArgs e)
    {
    int a;
    for (a = 1; a <= Convert.ToInt32(textBox1.Text); a++) {
    Button b=new Button();
    b.Name = "a" + a.ToString();
    b.Left = 50;
    b.Top = a * 40;
    b.Text = "button" + a.ToString();
    this.Controls.Add(b);
    }
    }

    private void button2_Click(object sender, EventArgs e)
    {
    Control ctrl;
    ctrl = this.Controls.Find("a" + textBox2.Text, true)[0];
    ctrl.BackColor = Color.Red;

    }

  15. #15
    دمت گرم من همینو می خواستم
    اون اولم گفتیا کاش یکم همون اول دربارش توضیح می دادی دنباله همین کلمه کلیدی می گشتم
    بابا تو دیگه کی هستی دسه....

  16. #16
    کاربر دائمی آواتار aidinwashere
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    پشته سرت
    پست
    632
    کد قشنگی نوشتید، آفرین.

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

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