PDA

View Full Version : سوال: ایجاد یک Button سفارشی با استفاده از user control



rezaversace
یک شنبه 14 شهریور 1389, 11:51 صبح
سلام، من با استفاده از user control یک button سفارشی ساختم (با C#‎)، اما نمیدونم چطوری خاصیت text بهش اضافه کنم، لطفا منو راهنمایی کنید :افسرده:، با تشکر.....

azaditafakor
یک شنبه 14 شهریور 1389, 11:53 صبح
براش باید توی کدهای یوزر کنترل پروپرتی بنویسی اینجوری :


public string text
{
get
{
return BtnDel.Text;
}
set
{
BtnDel.Text = value;
}
}


البته با کلاس اگر بنویسیش دیگه این کار لازم نیست و از لحاظ ارث بردن نسبتش میدی به یک باتن . خودش همه ی خاصیتها رو داره .

rezaversace
یک شنبه 14 شهریور 1389, 12:27 عصر
ممنون از راهنماییتون ، چطوری باید با کلاس بنویسمش؟

BILLY_Mgs
یک شنبه 14 شهریور 1389, 18:47 عصر
public partial class YourClass : System.Windows.Forms.Button

rezaversace
دوشنبه 15 شهریور 1389, 10:17 صبح
چطوري ميشه تو فرم user control به اشیاء داخل كنترل ساخته شده دسترسي داشت؟(البته منظورم زمانی هستش که توی یک پروزه ویندوزی بخواهیم ازش استفاده کنیم)

javad_r_85
دوشنبه 15 شهریور 1389, 10:26 صبح
می تونی modify اونا public کنی برای دسترسی هم می تونی به شیوه زیر عمل کنی

Usercontorol1.buuton.Text
ویا غیره

rezaversace
دوشنبه 15 شهریور 1389, 10:36 صبح
تشکر، یه سوال دیگه: به رویدادهای اشیاء داخل user control هم میشه دسترسی داشت؟

Reza_Yarahmadi
دوشنبه 15 شهریور 1389, 10:44 صبح
چطوري ميشه تو فرم user control به اشیاء داخل كنترل ساخته شده دسترسي داشت؟(البته منظورم زمانی هستش که توی یک پروزه ویندوزی بخواهیم ازش استفاده کنیم)

يك روش به اين صورت ميتونه باشه:
توي يوزر كنترل كد زير رو بنويس

public enum MyControl
{
TextBox, Lable, Button
}
public Control this[MyControl index]
{
get
{
switch (index)
{
case MyControl.TextBox:
return textBox1;
break;
case MyControl.Lable:
return label1;
break;
case MyControl.Button:
return button1;
break;
default:
return null;
break;
}
}
}

توي پروژه هم بصورت زير ميتونيد بهش دسترسي داشته باشيد

UC1[UC.MyControl.Button].Text = "Reza";
توي كدهاي بالا من فرض كردم يوزر كنترل شامل يك دكمه ، يك ليبل و يك تكست باكس است
اسم كلاس يوزر كنترلم UC و اسم يوزر كنترل توي برنامه UC1
بقيه اش هم كه چيزي نداره!!

rezaversace
دوشنبه 15 شهریور 1389, 10:52 صبح
ممنون از لطفتون، آیا میشه به رویدادهای اشیاء داخل user control هم دسترسی داشت؟

rezaversace
دوشنبه 15 شهریور 1389, 11:15 صبح
چطوري ميشه تو فرم user control به رویدادهای اشیاء داخل كنترل ساخته شده دسترسي داشت؟(البته منظورم زمانی هستش که توی یک پروزه ویندوزی بخواهیم ازش استفاده کنیم)

Reza_Yarahmadi
دوشنبه 15 شهریور 1389, 12:05 عصر
منظورتون از دسترسي به رويداد چيه؟ دسترسي به متد رويدادي كه توي يوزر كنترل نوشتيد؟ يا اينكه فرضا بتونيد براي رويداد كليك يكي از دكمه هاي يوزر كنترلتون توي فرم كد بنويسيد؟

rezaversace
دوشنبه 15 شهریور 1389, 12:14 عصر
من یک dll طراحی کردم که توش فقط یک button وجود داره، میخوام وقتی تو یک پروژه ویندوزی ازش استفاده می کنم بتونم برای رویدادهای شیء button که داخل user control هست کد نویسی کنم، آیا این کار شدنیه؟

Reza_Yarahmadi
دوشنبه 15 شهریور 1389, 12:38 عصر
از شدن كه كار نشد نداره.
توي يوزر كنترل كد زير رو بنويس

public delegate void btnClick(object sender, EventArgs e);
public event btnClick Buttonclick;

private void button1_Click(object sender, EventArgs e)
{
this.Buttonclick(this, e);
}]
با اين كد يه رويداد به رويدادهاي يوزر كنترل در فرم اضافه ميشه به نام ButtonClick كه مربوط به رويداد كليك button1 در يوزر كنترله
براي بقيه ابزارهاي يوزر كنترل هم ميتونيد همچين كاري كنيد.

rezaversace
دوشنبه 15 شهریور 1389, 12:54 عصر
ممنون دوست عزیز، واسه رویداد Mouse down هم میشه از همین کد استفاده کنم؟