PDA

View Full Version : سوال: چطور میشه با کلیک بر روی دکمه تمام TextBoxها رو خالی کنم



oliya24
سه شنبه 04 تیر 1392, 14:14 عصر
سلام و خسته نباشید دوستان چطور میتونم به روشی خوب با کلیک بر روی یک دکمه تمام تکست باکسها رو خالی کنم یه روش اینه که من بیام و از این کد استفاده کنم
text box1.text=""
اما من دنبال روش جالب تری در کد نویسی هستم این روش برای وقتی خوبه که تکست باکسها کم باشن اما اگر زیاد باشن جالب نیست ممنون میشم کمکم کنید

arash691
سه شنبه 04 تیر 1392, 14:28 عصر
textbox.clear();

tooraj_azizi_1035
سه شنبه 04 تیر 1392, 14:31 عصر
foreach(TextBox txt in myForm.Controls)
txt.Clear();

mahyar_k3
سه شنبه 04 تیر 1392, 14:34 عصر
همین روشی که استفاده میکنی جوابگوست. اگر هم تعداد زیاد بود میذاری توی یه حلقه که تمام تکست باکس ها(یی که شرط خاصی دارن) رو پیدا کنه و رشته خالی درش بذاره.

Salar Ashgi
سه شنبه 04 تیر 1392, 21:49 عصر
فقط ممکنه Textbox ها در داخل یه کنترل دیگه واقع شده باشن ، مثل Groupbox ، که در اینصورت
باید بازگشتی عمل کنید ./

jblaox
سه شنبه 04 تیر 1392, 23:01 عصر
foreach(TextBox txt in myForm.Controls)
txt.Clear();


سلام

این خطا را میدهد :

Error 2 An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.Controls.get' E:\Test-Prj\Form\Form_Main.cs 1567 37 Test-Prj

mthreat.info
سه شنبه 04 تیر 1392, 23:25 عصر
foreach (var item in Controls)
{
if (item is TextBox)
{
(item as TextBox).Clear();
}
}

IMANAZADI
سه شنبه 04 تیر 1392, 23:34 عصر
foreach (Control ctrl in This.Controls)
{
if(ctrl is TextBox)
{
ctrl.text.Clear();
}
}



اگر کد ها یکم اشتباه حروفی داشت ببخشید چون از خودم نوشتم و به ide دسترسی نداشتم

mz6488
چهارشنبه 05 تیر 1392, 07:18 صبح
اگه تکست باکس ها تو groupBox بودن باید بنویسی in this.GroupBox واسه panel هم همینطور

reza69
چهارشنبه 05 تیر 1392, 10:55 صبح
اگه تکست باکس ها تو groupBox بودن باید بنویسی in this.GroupBox واسه panel هم همینطور
اگه تو tab control بود چی؟

reza1371
چهارشنبه 05 تیر 1392, 11:28 صبح
یک تابع بنویس به صورت زیر :

void change_control(params Control[] ctls)
{
foreach (Control ct in ctls)
ct.Text = "";
}

بعد تو رویداد کلیک دکمه یا هر رویداد دیگه ای که دوست داشتی تکست باکس ها پاک بشن به صورت زیر تابع بالا رو صدا بزن :

private void button1_Click(object sender, EventArgs e)
{
change_control(textBox1, textBox2, comboBox1);
}

موفق باشی...

reza69
چهارشنبه 05 تیر 1392, 12:36 عصر
یک تابع بنویس به صورت زیر :

void change_control(params Control[] ctls)
{
foreach (Control ct in ctls)
ct.Text = "";
}

بعد تو رویداد کلیک دکمه یا هر رویداد دیگه ای که دوست داشتی تکست باکس ها پاک بشن به صورت زیر تابع بالا رو صدا بزن :

private void button1_Click(object sender, EventArgs e)
{
change_control(textBox1, textBox2, comboBox1);
}

موفق باشی...
ممنون
میشه یه کاری کرد دیگه اسم تکس باک ها رو ننویسم؟

reza1371
چهارشنبه 05 تیر 1392, 14:19 عصر
این یکی از بهترین راه هایی هست برای تغییر خاصیت گروهی ،

اون تابع که نوشتم فقط مخصوص textBox نیست ، تمام کنترل هایی که تو Properties شون Text دارند رو میشه تغییر داد .

باید اسم تمام کنترلهایی رو که خواستی خاصیت text شون تغییر کنه رو بنویسی...

amirreza_.net
چهارشنبه 05 تیر 1392, 15:01 عصر
یه تابع بنویس به صورت زیر:
public void cleartext_box(Form frm)
{
foreach (var ctrl in frm.Controls)
{
if (ctrl is TextBox)
{
((TextBox)ctrl).Text = string.Empty;
}
}

}

بعد اونو اینطوری صدا بزن:
cleartext_box(this);

wolf_majid
پنج شنبه 06 تیر 1392, 10:38 صبح
برای اینکه کنترل هر جا بود جواب بده :
private void ClearAllTxt(Control control)
{
foreach (Control ctrl in control.Controls)
{
ClearAllTxt(ctrl);
if (ctrl is TextBox)
(ctrl as TextBox).Text = string.Empty;
}
}

reza69
جمعه 07 تیر 1392, 16:02 عصر
برای اینکه کنترل هر جا بود جواب بده :
private void ClearAllTxt(Control control)
{
foreach (Control ctrl in control.Controls)
{
ClearAllTxt(ctrl);
if (ctrl is TextBox)
(ctrl as TextBox).Text = string.Empty;
}
}
چجوری ازش استفاده کنم؟ یعنی چجوری این تابع رو صدا بزنم؟

wolf_majid
جمعه 07 تیر 1392, 17:55 عصر
اسم هر شیئ ای که قراره تکست باکس های داخلش پاک بشه را به عنوان پارامتر بهش بده
مثلا" برای فرم جاری :
ClearallTxt(this);

reza69
جمعه 07 تیر 1392, 20:05 عصر
اسم هر شیئ ای که قراره تکست باکس های داخلش پاک بشه را به عنوان پارامتر بهش بده
مثلا" برای فرم جاری :
ClearallTxt(this);
آقا ممنون کارت درسته
اگه بخوام یه تکسباکس به خصوص رو پاک نکنه چی؟

khokhan
جمعه 07 تیر 1392, 20:18 عصر
آقا ممنون کارت درسته
اگه بخوام یه تکسباکس به خصوص رو پاک نکنه چی؟

با سلام به همه
این نمونه رو داشته باشین !!!!!

جمیع لطایف الحیل درون دوتا کلاس قرار داده شده و سه شیوه مختلف برای خالی کردن کنترلهای روی فرم درش بکار رفته

هرنوع کنترلی اعم از تکس باس و کمبو و ......... درون هر کنترل دیگری که باشند در امان نیستند و خالی می شند :لبخند:

مهرداد صفا
جمعه 07 تیر 1392, 21:13 عصر
اما من دنبال روش جالب تری در کد نویسی هستم این روش برای وقتی خوبه که تکست باکسها کم باشن اما اگر زیاد باشن جالب نیست ممنون میشم کمکم کنید

با سلام/

button1.Click += (s, e) => Controls.Cast<Control>().Where(c => c is TextBox).ToList().ForEach(c => (c as TextBox).Clear());

مهرداد صفا
جمعه 07 تیر 1392, 23:41 عصر
یا:

(from control in Controls.Cast<Control>() where control is TextBox select control).ToList().ForEach(c => c.Text = "");
//or
Controls.Cast<Control>().All(x => { x.Text = "";return true; });

rezam44
یک شنبه 09 تیر 1392, 19:13 عصر
یا:

(from control in Controls.Cast<Control>() where control is TextBox select control).ToList().ForEach(c => c.Text = "");
//or
Controls.Cast<Control>().All(x => { x.Text = "";return true; });



سلام
داداش این کد ، نوشته ی خوده دکمه رو هم پاک می کنه.!!!!:لبخند:

mashhadpix
دوشنبه 28 مرداد 1392, 08:13 صبح
سلام به دوستان
من این تایپیک را کامل خوندم ولی اون چیزهایی که میخاستم نبود. هر کجا هم گشتم تو این فروم پیدا نکردم مطلب مورد نظرم را.
من یک view دارم که داخلش textbox و یک ادیتور و دو تا فایل آپلود دارم. می خواهم بدونم چطوری باید متن داخل این object ها را پاک کنم.
وبسایت خبری با web Aplication نوشتم.
ممنون میشم یکی بتونه منو راهنمایی کنه.