نمایش نتایج 1 تا 5 از 5

نام تاپیک: افزودن متد یا خاصیت جدید به کنترل؟

  1. #1

    افزودن متد یا خاصیت جدید به کنترل؟

    سلام
    ایا می شه یک متد یا خاصیت جدید به کنترلی بیفزاییم.

    مثلا می شه یک(usercontrol) یاکلاس جدیدی درست کنیم که از کلاس button ارث ببرد بعد در این کلاس جدید یک خاصیت جدید ایجاد کنیم مثلا خاصیتی باشه که تعداد کلیک کردن را در خودش نگه داره

  2. #2
    کاربر دائمی آواتار haniyehghassami
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    سن
    37
    پست
    138

    نقل قول: افزودن متد یا خاصیت جدید به کنترل؟

    سلام
    اره خب چرا که نه؟؟؟

    این و ببین

    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 عصر دلیل: اشتباه خودم در کد نویسی

  3. #3
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: افزودن متد یا خاصیت جدید به کنترل؟

    با سلام.

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

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


    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++;
    }
    }
    }



    موفق باشید.

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  4. #4

    نقل قول: افزودن متد یا خاصیت جدید به کنترل؟

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

    من می خوام یک usercontrol درست کنم و در پروژه های دیگر استفاده کنم
    اگه امکانش هست لطفا یک برنامه کامل قرار بدید
    با تشکر

  5. #5
    کاربر دائمی آواتار wolf_majid
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    534

    نقل قول: افزودن متد یا خاصیت جدید به کنترل؟

    کد کلاس :

    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 عصر دلیل: اصلاح کد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •