PDA

View Full Version : C# textbox index ????? کمکککککککککک



ramin2nt2
سه شنبه 04 اسفند 1388, 09:12 صبح
سلام

من توی فرمم تعداد زیادی textbox دارم که میخوام اونا رو manage کنم
اگه یادتون باشه توی vb6 یه چیزی بود به اسم index که اینکار رو میکرد

توی 2005 #C باید چکار کرد ؟

[متاسفانه من خیلی عجله دارم]

jas1387
سه شنبه 04 اسفند 1388, 09:29 صبح
TabIndex در پنجره Properties

یا از view آیتم Tab Order را انتخاب کن .

ramin2nt2
سه شنبه 04 اسفند 1388, 09:43 صبح
TabIndex در پنجره Properties

یا از view آیتم Tab Order را انتخاب کن .


سلام
نه نه
منظورم اینه که میخوام توی یه حلقه اون رو مدیریت کنم

مثلا

textBox1[0].Text = "something1"; a
textBox1[1].Text = "something2"; a

Yasersadegh
سه شنبه 04 اسفند 1388, 09:51 صبح
سلام دوست عزيز
پيشنهاد من اينه كه شما در هنگام لود فرمتون، همه تكست باكساتون رو در يه آرايه سراسري از نوع Textbox قرار بديد! سپس با استفاده از انديس آرايه ها (كه هر خونه آرايه يه تكست باكس هستند) مي تونيد هر بلايي خواستيد سرشون بياريد!!:لبخند:
موفق باشيد:چشمک:

ramin2nt2
سه شنبه 04 اسفند 1388, 10:02 صبح
سلام دوست عزيز
پيشنهاد من اينه كه شما در هنگام لود فرمتون، همه تكست باكساتون رو در يه آرايه سراسري از نوع Textbox قرار بديد! سپس با استفاده از انديس آرايه ها (كه هر خونه آرايه يه تكست باكس هستند) مي تونيد هر بلايي خواستيد سرشون بياريد!!:لبخند:
موفق باشيد:چشمک:


سلام

راستش متوجه منظور شما نشدم

میشه یکم بیشتر راهنمایی کنید ؟
ممنون میشم

ببینید در واقع من میخوام که به وسیله یه حلقه یا هرچی دیگه به تمام تکست باکس های فرمم دسترسی پیدا کنم
و اونا رو مدیریت کنم !!!

Yasersadegh
سه شنبه 04 اسفند 1388, 10:12 صبح
ببينيد دوست عزيز شما ابتدا در بالاي فرمتون يه آرايه از نوع تكست باكس تعريف مي كنيد:



TextBox[] TB=new TextBox[n];


در اينجا n همون تعداد تكست باكهاي رويه فرمتون هست!!
سپس در رويداد formLoad فرمتون هر تكست باكس رو در يه خونه آرايه قرار مي دهيد:



TB[0] = TextBox1;
TB[1] = TextBox2;
TB[2] = TextBox3;
...
TB[n] = TextBox n;


حالا شما يه آرايه داريد كه همه تكست باكساتون توشه!!
شما مي تونيد از TB به عنوان تكست باكس استفاده كنيد!!مثل كد زير:



for (int i = 0; i < n; i++)
{
MessageBox.Show(TB[i].Text);
}


اميدوارم كه متوجه منظورم شده باشيد و مشكلتون حل بشه!!:لبخند:
موفق باشيد:چشمک:

Yasersadegh
سه شنبه 04 اسفند 1388, 10:25 صبح
راستش من حلش کردم خودم
اومدم اینجا تشکر بزنم، دیدم شما پست دادی !!!

ممنون دوستان
جبران کنیمممم
دوست عزيز اگه از روش ديگه اي حلش كرديد، خوشحال ميشم اگه روشتون رو بفرماييد!!:لبخند:

ramin2nt2
سه شنبه 04 اسفند 1388, 10:49 صبح
دوست عزيز اگه از روش ديگه اي حلش كرديد، خوشحال ميشم اگه روشتون رو بفرماييد!!:لبخند:


نه نه
دقیقا از روشی که شما فرمودید حل کردم، ولی منتظر سورس شما نشدم

ولی تا اونجا که من فهمیدم با foreach میشه حلش کرد

foreach(contorls c in Form1.controls))
{
if (c.tag==index)
//do somthing
}

یه همچین چیزی بود
دیشب یه سورسی دیدم
الان میگردم پیدا میکنم میزارم

Salar Ashgi
سه شنبه 04 اسفند 1388, 11:19 صبح
میتونید از دستور زیر نیز استفاده کنید :



this.Controls["textBox1"]


موفق باشید .

ramin2nt2
سه شنبه 04 اسفند 1388, 11:57 صبح
میتونید از دستور زیر نیز استفاده کنید :



this.Controls["textBox1"]
موفق باشید .


من سعی کردم این روش رو هم امتحان کنم :



this.Controls["txtcell1"].Text = "a";



ولی با خطای زمان اجرای زیر روبرو شدم

Object reference not set to an instance of an object.

باید چه آبجکتی رو بسازم و ست کنم ؟؟

Warrior
سه شنبه 04 اسفند 1388, 13:37 عصر
دوست من لطف می کنی دقیقا بگویی با foreach چه کار کردی؟

منظورم این است که یک نمونه از کدی که خودت استفاده کردی را اینجا قرار بده.

همچنین اگر دوستان می دانند چطور می شود مشکل بالا را حل کرد راهنمایی کنند(controls["textBox1].Text="AAA")

ممنونم

ramin2nt2
سه شنبه 04 اسفند 1388, 14:52 عصر
فهمیدم مشکل از کجاست

چون که من textbox ها رو توی یه Groupbox گذاشته بودم
باید از دستور زیر استفاده میکردم :



this.Controls.Find("CONTROL_NAME", true)[0]


در واقع وقتی که پارامتر دوم true باشد، باعث میشه که چایلد ها رو هم بگرده !!!!
و توی این موارد که تکست باکس داخل groupbox هست، دستور اولی عملا کارایی نداره

موفق باشید