User Control در#C

پنجشنبه 10 دی 1394

در این مقاله قصد داریم در مورد User Control در # c صحبت نماییم ، و با یک نمونه آن را توضیح دهیم.با استفاده از آن می توانید در زمان کوتاه مشکلات خود را حل نمایید.و یک کامپوننت را که خود ایجاد کرده اید در برنامه های خود استفاده نمایید.

User Control در#C

اول از همه یک سری سوال پیش می آید که چرا ما از User control استفاده می نماییم.

برای انعطاف پذیری و استفاده مجدد از کد ها و برای پیدا کردن اشکال و حل و فصل کردن مشکلات در زمان کوتاه بهتر است که ما از این ابزار استفاده نماییم.

برای درست کردن یک user control:

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

داخل بخش windows بروید و به قسمت Windows forms control library بروید به صورت زیر:

در اینجا ما از یک combo box استفاده می نماییم که این combobox چند بخشی است و یک سری داده به آن متصل شده است.

یک combox از داخل نوار ابزار بر می داریم و بر روی صفحه قرار می دهیم.

کد کلاس به صورت زیر است:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
namespace mycontrolLibrary
{
    public partial class MyCombobox : UserControl
    {
        #region Public Member
        /// <summary>
        /// Here i have create two property for geting  value of selected item of comboBox
        /// and geting text of selected item of comboBox.
        /// cmbState is a name of combobox.
        /// its neccesary property its used when you use this control
        /// in your form.
        /// </summary>
        public string SlectedText
        {
            get { return cmbState.Text; }

        }
        public string Selectedvalue
        {
            get { return cmbState.SelectedValue.ToString(); }

        }

        /// <summary>
        /// Here i have to declare event.Like Normal combobox selected indexChanged event.
        /// you can use this event whenever you have to require some action/operation on selected index
        /// changed of combobox.you have to fired this event and perform some action

        /// </summary>
        public event EventHandler SelectedIdexChanged;
        #endregion

        #region Constructor
        /// <summary>
        /// MyCombobox is a constructor.
        /// Inside constructor fire the load event of this usercontrol.
        /// </summary>
        public MyCombobox()
        {
            InitializeComponent();

            this.Load += new EventHandler(MyCombobox_Load);
            this.cmbState.SelectedIndexChanged += new EventHandler(cmbState_SelectedIndexChanged);
        }

        /// <summary>
        /// Combobox Selected indexChanged event of Combobox
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void cmbState_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (SelectedIdexChanged != null)
                SelectedIdexChanged(sender, e);

        }
        #endregion

        #region User Control Event

        void MyCombobox_Load(object sender, EventArgs e)
        {
            BindComboBox();
        }

        #endregion


        #region Binding Method
        /// <summary>
        /// This method bind combobox with specified data.
        /// </summary>
        private void BindComboBox()
        {
            DataTable dtState = new System.Data.DataTable();
            dtState.Columns.Add("txtPart");
            dtState.Columns.Add("valuePart");
            dtState.Rows.Add("Delhi", "1");//Here Delhi is txtPart and 1 is valuepart
            dtState.Rows.Add("Bihar", "2");
            dtState.Rows.Add("Punjab", "3");
            dtState.Rows.Add("UP", "4");
            cmbState.DataSource = dtState;
            cmbState.DisplayMember = "txtPart";
            cmbState.ValueMember = "ValuePart";

        }
        #endregion
    }
}

مزیت استفاده از User control:

1-قابلیت استفاده مجدد از کد

2-صرفه جویی در زمان

3-زحمت کمتر

4-روش آسان برای پیدا کردن مشکل و رفع آن

5-صرفه جویی در حافظه

نحوه ی استفاده از user control:

داخل toolbox بروید و راست کلیک کرده و گزینه ی select add tab option را انتخاب نمایید.

زمانی که اضافه کردید یک نام در toolbox شما اضافه خواهد شد.به صورت زیر:

سپس به تب می روید و کلیک راست نمایید و یک آیتم را انتخاب نمایید.

به صورت تصویر زیر browse را انتخاب نمایید

حالا dll خود را اضافه نمایید به صورت زیر:

حالا dll مربوطه اضافه شده است بازدن ok به ادامه ی بخش می روید. به صورت زیر:

بعد از آن شما می توانید ابزار خود را داخل نوار ابزار ببینید:

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

در تصویر زیر یک بار value آن را به ما بر می گرداند و یک بار متن و یا همان Text مورد نظر را بر می گرداند.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace testapp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            myCombobox.SelectedIdexChanged += new EventHandler(myCombobox_SelectedIdexChanged);
        }

        void myCombobox_SelectedIdexChanged(object sender, EventArgs e)
        {
            MessageBox.Show(myCombobox.SlectedText);
        }

        private void btnDropdownSelectedvalue_Click(object sender, EventArgs e)
        {
            MessageBox.Show(myCombobox.Selectedvalue.ToString());
        }

        private void btnDropDownSelectedText_Click(object sender, EventArgs e)

        {

            MessageBox.Show(myCombobox.SlectedText);      }
      
    }
}

خروجی به صورت زیر خواهد بود:

هدف از این مقاله ایجاد یک کامپوننت بود که خودتان ایجاد نمایید به صورت یک classlibary و استفاده کردن از آن در یک نمونه ی windowsform که مشاهده کردید.

آموزش سی شارپ

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 2 تشکر

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید