PDA

View Full Version : سوال: مشکل در ایجاد textbox سفارشی



rasoolf
دوشنبه 12 مهر 1389, 00:43 صبح
سلام ، من میخوام یه TextBox سفارشی بسازم ولی وقتی کد تغییر اندازه رو می نویسم جواب نمیده . کد رو توی رویداد resize مربوط به usercontrol می نویسم


this.height=22;
textboxt1.width=this.width;
textboxt1.heigth=this.height;

به نظرتون مشک ازچیه چی کارکنم ممنون

mohsen_csharp
دوشنبه 12 مهر 1389, 03:25 صبح
اگه می خوای textBox سفارشی درست کنی دیگه چرا از userControl استفاده می کنی؟

مستقیما از خود textBox ارث بری کن

MoS4k1
دوشنبه 12 مهر 1389, 13:43 عصر
texttbox رو در صورتی میتونی ارتفاعشو تغییر بدی که خاصیت مولتی لاین true باشه

mmd2009
سه شنبه 13 مهر 1389, 01:54 صبح
با سلام



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace textbox
{
class mytextbox : TextBox
{
public mytextbox()
: base()
{
this.Font = new System.Drawing.Font
("tahoma", 10, System.Drawing.FontStyle.Regular);

}

protected override void OnResize(EventArgs e)
{
MessageBox.Show("Resize");
base.OnResize(e);
}
}
}

mmd2009
سه شنبه 13 مهر 1389, 03:06 صبح
و ...



class mytextbox : TextBox
{
public mytextbox()
: base()
{
this.Font = new System.Drawing.Font
("tahoma", 10, System.Drawing.FontStyle.Regular);

this.Resize += new EventHandler(mytextbox_Resize);

}

void mytextbox_Resize(object sender, EventArgs e)
{
MessageBox.Show("d");
}

}

hossein2007
شنبه 17 مهر 1389, 15:35 عصر
من متوجه نشدم که عبارت
: base() در جلوی متد سازنده چیه و چکار انجام می ده. اگه لطف کنید راهنمایی کنید ممنون می شم.

mohsen_csharp
شنبه 17 مهر 1389, 19:01 عصر
من متوجه نشدم که عبارت
: base() در جلوی متد سازنده چیه و چکار انجام می ده. اگه لطف کنید راهنمایی کنید ممنون می شم.
سازنده کلاس پدرش رو فراخوانی می کنه

hossein2007
یک شنبه 18 مهر 1389, 10:15 صبح
سازنده کلاس پدرش رو فراخوانی می کنه با توجه به اینکه mytextbox از TextBox ارث می برد. چه لزومی به فراخوانی سازنده پدر است.
(فکر کنم اضافی باشه.)
اگر غیر از این هست خوشحال می شم راهنمایی کنید.

mmd2009
یک شنبه 18 مهر 1389, 12:00 عصر
میتونید ننویسیدش ، یا به قول شما اضافیه

موفق باشید

hossein2007
یک شنبه 18 مهر 1389, 15:16 عصر
اول از توجهتون ممنونم.

اما یه مشکل کوچیک در استفاده از این کنترل سفارشی وجود داره، اونم اینه که هنگامی که کنترل ساخته شده را (در زمان ساخت فرم) از toolbox به درون فرم می کشم تمام رویداد ها فراخوانی می شن. (البته در زمان اجرا مشکلی ندارم)

ali.ghodrati
یک شنبه 18 مهر 1389, 15:47 عصر
سلام دوست عزیز
نیازی به کد نویسی نیست
پراپرتی های زیر رو مقدار بده
Anchor-------Top, Bottom, Left, Right
multiline-------------------true
با ریسایز شدن فرم textbox هم ریسایز میشه

mmd2009
یک شنبه 18 مهر 1389, 22:25 عصر
خب ببین دوست عزیز فکر کنم کدت رو اینطوری نوشتی :



class mytext : TextBox
{

public mytext()
{

this.Resize += new EventHandler(mytext_Resize);
}

void mytext_Resize(object sender, EventArgs e)
{
MessageBox.Show("yes");
}

}


که مطمئنا باید اجرا بشه چون فرم هنوز در جریانه و هر تغییری که بدید اعمال میشه و رویداد ها هم طبیعتا اجرا میشن

کدت رو اینطوری بنویس مشکلت حل میشه :



class mytext : TextBox
{

public mytext()
{
if (DesignMode == true)
{
this.Resize += new EventHandler(mytext_Resize);
}
}

void mytext_Resize(object sender, EventArgs e)
{
MessageBox.Show("yes");
}

}


موفق باشید.