سلام
ایا می شه یک متد یا خاصیت جدید به کنترلی بیفزاییم.
مثلا می شه یک(usercontrol) یاکلاس جدیدی درست کنیم که از کلاس button ارث ببرد بعد در این کلاس جدید یک خاصیت جدید ایجاد کنیم مثلا خاصیتی باشه که تعداد کلیک کردن را در خودش نگه داره
سلام
ایا می شه یک متد یا خاصیت جدید به کنترلی بیفزاییم.
مثلا می شه یک(usercontrol) یاکلاس جدیدی درست کنیم که از کلاس button ارث ببرد بعد در این کلاس جدید یک خاصیت جدید ایجاد کنیم مثلا خاصیتی باشه که تعداد کلیک کردن را در خودش نگه داره
سلام
اره خب چرا که نه؟؟؟
این و ببین
1 - ساخت user control
public class MyButton : System.Windows.Forms.Button
{
private int clickcount;
public int ClickCount
{
get
{
return clickcount;
}
}
protected override void OnClick(EventArgs e)
{
++clickcount;
base.OnClick(e);
}
}
نکات مهم تو این حالت :
1 - مورد inherit هستش که یعنی ارث برای پس user control ما حتما باید ارث بری داشته باشه از دکمه
2 - برای تعریف کردن خصوصیات کلا همون طور که میدونیم به شکل زیر عمل میشه :
private int cl;
public int Cl
{
set { Statement; } //در اینجا میشه مقداری رابصورت پیش فرض برای خصوصیتم ست کنم
get { return cl; }//تنظیم اینکه نوع خروجی ما توی این خصوصیت چی باشه
}
3 - در اینجا قبل از تعریف کامل متد کلیک override گذاشتیم که به این معنی هستش که این متد ما روی متد اصلی نوشته میشه
4 - کلمه یا همون جمله ی base.OnClick(e); هستش که در اینجا براساس همون بیس متد کلیک این متد ساخته شده
شرمنده قبلی اشتباه بود با کمک دوستم درست شد حالا
آخرین ویرایش به وسیله haniyehghassami : شنبه 05 آذر 1390 در 23:01 عصر دلیل: اشتباه خودم در کد نویسی
با سلام.
کد بالا درسته ولی خصوصیت ایجاد نمیکنه.
به این صورت عمل کنید و کنترل جدید رو بسازید :
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class NewButton : Button
{
public NewButton()
{
InitializeComponent();
}
public int CountClick { get; set; }
}
}
طریقه استفادش هم به این صورت هستش که :
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void newButton1_Click(object sender, EventArgs e)
{
newButton1.CountClick += 1;
}
private void newButton2_Click(object sender, EventArgs e)
{
MessageBox.Show(newButton1.CountClick.ToString());
}
}
}
خب کدها هم به این صورت هستند که در بخش اول همونطور که میبیند از دکمه ارث بردن و یک خاصیت جدید با نام CountClick به دیگر خصوصیات دکمه اضافه کردن و تو کدنویسی بعدش که طریقه استفادش هست هر بار که رو خود دکمه کلیک کردم یکی به خاصیت CountClick اضافه کردم و بعدش هم با دکمه بعدی نشونش دادم. ولی اگر میخواستید خود کنترل جدید این کارو بکنه براتون و همیشه خودش یکی اضافه بکنه بدون اینکه ما بهش بگیم کافیه به این شکل کدتون رو تغییر بدید :
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class NewButton : Button
{
public NewButton()
{
InitializeComponent();
}
public int CountClick { get; set; }
private void NewButton_Click(object sender, System.EventArgs e)
{
CountClick++;
}
}
}
موفق باشید.
کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»
سلام
با تشکر که راهنماییم کردید
من می خوام یک usercontrol درست کنم و در پروژه های دیگر استفاده کنم
اگه امکانش هست لطفا یک برنامه کامل قرار بدید
با تشکر
کد کلاس :
public partial class myBtn :Button
{
public myBtn()
{
InitializeComponent();
}
public int count
{
private set;
get;
}
protected override void OnClick(EventArgs e)
{
++count;
base.OnClick(e);
}
}
طریقه استفاده :
private void myBtn1_Click(object sender, EventArgs e)
{
this.Text = (sender as myBtn).count.ToString();
}
آخرین ویرایش به وسیله wolf_majid : یک شنبه 06 آذر 1390 در 18:40 عصر دلیل: اصلاح کد