Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Tạo Custom Control trong lập trình C#

  1. #1
    Ngày gia nhập
    12 2006
    Bài viết
    12

    Question Tạo Custom Control trong lập trình C#

    Có ai có code để tạo CustomControl chỉ mình với ?
    Đã được chỉnh sửa lần cuối bởi haipk : 27-03-2007 lúc 07:18 PM. Lý do: Nhầm

  2. #2
    Ngày gia nhập
    03 2007
    Bài viết
    30

    Sau Bro ko nói là Control nào cà : Mình demo cho cậu cái nỳ tham khảo nha . Control của mình tên là : MySubmitControl , nhiệm vụ kiểm tra giá trị nhập liệu của ô textbox . Nếu rổng (empty)--> báo lổi . Ngược lại show lên màng hình chuổi mà người dùng đả nhập .

    Tạo 1 dự án mới ngôn ngử thể hiện là C# , sử dụng Class Library Template .

    Đầu tiên nó là như vậy nè :
    Code:
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ClassLibrary1
    {
        public class Class1
        {
        }
    }
    Sau đó đổi tên của control lại thành MySubmitControl và thêm vào 2 namespace vào. và kết thừa từ Class UserControl
    Code:
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace SubmitControl
    {
        public class MySubmitControl:UserControl
        {
        }
    Sau đó Paste đoạn code sau vào :
    Code:
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    namespace SubmitControl
    {
        public class MySubmitControl:UserControl
        {
            /// <summary>
            /// Tao moi 1 uy thac ten la SubmitClickedHandler
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            public delegate void SubmitClickedHandler(object sender,EventArgs e);
    
            /// <summary>
    /// Tao moi 1 su kien SubmitClicked thong wa uy thac SubmitClickedHandler
            /// </summary>
            public event SubmitClickedHandler SubmitClicked;
            /// <summary>
            /// Khai bao 1 control TextBox ten la txtTextSubmit
            /// </summary>
            private TextBox txtTextSubmit;
            /// <summary>
            /// Thuoc tinh cua txtTextSubmit
            /// </summary>
            public string TextboxSubmit
            {
                set { this.txtTextSubmit.Text = value;}
                get { return this.txtTextSubmit.Text; }
            }
            /// <summary>
            /// Tao doi tuong button moi ten la btnSubmit 
            /// </summary>
            private Button btnSubmit;
            private Label label1;
    
            /// <summary>
            /// Phuong thuc khoi tao cho mySubmitControl
            /// </summary>
            public MySubmitControl()
            {
                InitializeComponent();
            }
    
            /// <summary>
            /// Tao cac doi tuong controls 
            /// </summary>
            private void InitializeComponent()
            {
                this.txtTextSubmit = new System.Windows.Forms.TextBox();
                this.btnSubmit = new System.Windows.Forms.Button();
                this.label1 = new System.Windows.Forms.Label();
                this.SuspendLayout();
                // 
                // txtTextSubmit
                // 
                this.txtTextSubmit.Location = new System.Drawing.Point(80, 13);
                this.txtTextSubmit.Name = "txtTextSubmit";
                this.txtTextSubmit.Size = new System.Drawing.Size(176, 20);
                this.txtTextSubmit.TabIndex = 0;
                // 
                // btnSubmit
                // 
                this.btnSubmit.Location = new System.Drawing.Point(123, 42);
                this.btnSubmit.Name = "btnSubmit";
                this.btnSubmit.Size = new System.Drawing.Size(75, 23);
                this.btnSubmit.TabIndex = 1;
                this.btnSubmit.Text = "Submit";
                this.btnSubmit.UseVisualStyleBackColor = true;
    this.btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click);
                // 
                // label1
                // 
                this.label1.AutoSize = true;
                this.label1.Location = new System.Drawing.Point(13, 18);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(61, 13);
                this.label1.TabIndex = 2;
                this.label1.Text = "Input Text :";
                // 
                // MySubmitControl
                // 
                this.Controls.Add(this.label1);
                this.Controls.Add(this.btnSubmit);
                this.Controls.Add(this.txtTextSubmit);
                this.Name = "MySubmitControl";
                this.Size = new System.Drawing.Size(289, 85);
                this.ResumeLayout(false);
                this.PerformLayout();
    
            }
    
            /// <summary>
            /// Dang ky su kien cho control 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void OnSubmitClicked(object sender,EventArgs e)
            {
                if (SubmitClicked != null)
                {
                    SubmitClicked(sender, e);
                }
            }
            /// <summary>
            /// Viet ham kiem tra gia tri nhap cho Textbox
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnSubmit_Click(object sender, EventArgs e)
            {
                if(txtTextSubmit.Text=="")
                {
                    MessageBox.Show("The Empty String does not allow",
                        "   Error  ",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    OnSubmitClicked(sender, e);
                }
            }
        }
    }
    Build ứng dụngg (F6) biên dịch ra *.DLL, chú ý Visual Studio ko cho phép Run Class Library nha , vì ko có "điêm đột nhập" . Tức là hàm Main .

    Sau đó từ Cửa xổ solution Explorer, tạo mới 1 Project WinForm , ngôn ngử là C# ( Vb.NET cũng được ) . Từ Toot box Kéo thả Control mình vừa tạo , nếu ko có thì chọn choose Items , vào browse đến file *.DLL mà vửa nảy vửa biên dịch xong .



    Chú ý Control ta vừa tạo có thêm 1 thuộc tính và 1 phương thức . Ta sẻ viết code cho phương thức này .

    Code:
     private void mySubmitControl1_SubmitClicked(object sender, EventArgs e)
            {
                MessageBox.Show(mySubmitControl1.TextboxSubmit);
            }
    Thế là xong , mổi lân làm chương trình muốn khỏi mắc công kiểm tra dử liệu nhập của người dùng thì ta có thể sài lại control của ta rùi .

    Chú bạn thành công .

    Mọi thắc mắc , bài vở liên hệ : Y!M : mr_ha_hcm

    Thân ái xin kính chào tạm biệt và hẹn gặp lại .

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    7

    Mặc định Mình chưa hiểu rõ lắm

    Mình chưa hiểu rõ lắm ở chỗ bạn khai báo 1 delegate nhưng mình không thấy dùng ở đâu cả. Bạn có thể giải thích vào email của mình được không?
    email: nguyenhaidangduy@yahoo.com

Các đề tài tương tự

  1. [WPF] Có thể Custom Control từ model, đặt Multilanguage cho RadPropertyGrid Ko?
    Gửi bởi nguyennhutoan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 21-06-2013, 05:41 PM
  2. Tạo custom control với MFC như thế nào ?
    Gửi bởi thieugiabk trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 04-10-2012, 03:44 PM
  3. Custom Control Listview???
    Gửi bởi hotanvu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 07-12-2010, 12:58 AM
  4. Custom Control trong Asp.net?
    Gửi bởi xongvaoday trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 16-09-2010, 10:32 PM
  5. custom control trên C#?
    Gửi bởi vanan3103 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 12
    Bài viết cuối: 20-04-2009, 04:33 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn