PDA

View Full Version : ساخته شدن اتوماتیک textbox



Qasemy
چهارشنبه 31 خرداد 1391, 00:27 صبح
سلام ...
یه نرم افزار دارم می سازم ، می خوام یه متن طولانی بهش بدم . بعدش هر پاراگراف این متن رو می خوام بریزه توی یک تکس باکس . بعدش یک دکمه بزنم همه تکس باکس ها از بین بره .
این که چطور پاراگرافت رو جدا کنم و وارد تکس باکس کنم بلدم ( من چقدر بلدم واقعا !!! :خجالت: ) ولی این که چطور تعداد نامعلومی تکس باکس رو با توجه به متن ، بسازم رو بلد نیستم و این که چطور بعدش دستور بدم همه اون ها از بین برن ...
پروژه ام هست لطفا سریع راهنماییم کنید ... :ناراحت:

Y_Safaiee
چهارشنبه 31 خرداد 1391, 01:07 صبح
با سلام خدمت شما دوست عزیز

منظورت این کاره؟این ساده ترین راهه



private void btn_create_Click(object sender, EventArgs e)
{
for (int a = 1; a < 6; a++)
{
TextBox txt = new TextBox();
txt.Left = 20;
txt.Top = 25 * a;
this.Controls.Add(txt);
}
}
private void btn_del_Click(object sender, EventArgs e)
{

foreach (Control txt in this.Controls)
{

if (txt.GetType().Name=="TextBox") this.Controls.Remove(txt);
}
}




موفق باشی
بایت بایت

harani
چهارشنبه 31 خرداد 1391, 02:22 صبح
سوالتونو درست نفهیدم ولی کد زیر رو نوشتم که اگه متن تایپ شده در کنترل textBoxتون از یه حدی بیشتر شد روی یک textBox مانند کل متن به نمایش در بیاد .
در رویداد MouseHover یا MouseEnter مربوط به TextBoxت کد زیر رو وارد میکنی :



private void TextBox1_MouseHover(object sender, EventArgs e)
{
ToolTip t = new ToolTip();

if (TextBox1.Text.Length >= 10)
t.Show(TextBox1.Text, TextBox1);
}



امیدوارم مشکلتان حل شده باشد .

harani
چهارشنبه 31 خرداد 1391, 02:37 صبح
با توجه به کد دوستمون یه چیزایی رو گرفتم .
private void btn_Create_Click(object sender, EventArgs e)
{
string[] matn = str.Splite('\n');//str متن شماست
for (int i = 1; i < matn.Lenght; i++)
{
TextBox txt = new TextBox();
txt.Left = 20;
txt.Top = 25 * a;
this.Controls.Add(txt);
}
}
private void btn_del_Click(object sender, EventArgs e)
{

foreach (txt T in this.Controls.OfType<txt>())
{

this.Controls.Remove(T);
}
}
اگه جواب درسته از دوستمون هم تشکر کن از کد ایشون هم استفاده کردم !!!!!!!

Qasemy
چهارشنبه 31 خرداد 1391, 23:03 عصر
سلام . آقا دست جفتتون درد نکنه . فقط برنامه رو با توجه به نیازم به این شکل در آورم . البته یک اشکال داره . اون هم این که وقتی که چند تا تکس باکس می سازم وقتی که پاک می کنم . یک بار که می زنم فقط نصفش رو پاک می کنه . بعد دوباره مجبورم یه بار دیگه بزنم تا همه تکس های جدید رو پاک کنه . لطفا کمک کنید در این مورد هم ... دستتون درد نکنه . این هم کدی که من از ترکیب کد ها تون نوشتم : :متفکر:
int button =0;

private void btnCreate_Click(object sender, EventArgs e)
{
string matn = "hello world";

TextBox txt = new TextBox();
txt.Left = 20;
txt.Top = 26+ button;
button = txt.Bottom;
txt.Text=matn ;
this.Controls.Add(txt);

}

private void btnClose_Click(object sender, EventArgs e)
{

foreach (Control txt in this.Controls)
{

if (txt.GetType().Name == "TextBox") this.Controls.Remove(txt);
}

}

Mahmoud.Afrad
پنج شنبه 01 تیر 1391, 00:24 صبح
برای دکمه حذف میتونید یکی از دو تکه کد زیر رو بنویسید(معادل هم هستند)
this.Controls.OfType<TextBox>().ToList().ForEach(c => c.Dispose());
یا

foreach (TextBox txt in this.Controls.OfType<TextBox>().ToList())
txt.Dispose(); برای استفاده باید فضای نام System.Linq اضافه شده باشه.