我做了一个复合控件,包括一个button和一个textbox,请问怎样才能在winform上使用这个复合控件的buttonclick事件?谢谢

解决方案 »

  1.   

    控件里加        public event EventHandler ButtonClick;
          
            private void button1_Click(object sender, EventArgs e)
            {
                if (ButtonClick != null) ButtonClick(sender, e);
            }
      

  2.   

    不难啊   集成自 button 后 
    然后用代理实现自定义事件啊
    重写事件 
      

  3.   


    然后使用时,记得定义事件函数,然后注册事件就可以了.
    如.
    private void  cbuttonclick (sender ,e )
    {
    //函数...
    }
    复合控件    控件= new 复合控件();
    控件.ButtonClick += this.cbuttonclick ;
    就可以了...
      

  4.   


    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 WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                MyControl test = new MyControl();
                test.ButtonClick += TestClick;
                this.Controls.Add(test); 
            }        private void TestClick(object sender, EventArgs e)
            {
                MessageBox.Show("Test");
            }     }    public class MyControl : UserControl
        {        private Button btn;
            private TextBox txtBox;        public event ButtonClickEventHandler ButtonClick;
            public delegate void ButtonClickEventHandler(object sender, EventArgs e);
            public MyControl()
            {
                btn = new Button { Text = "Button", Dock = DockStyle.Top };
                txtBox = new TextBox { Text = "TextBox", Dock = DockStyle.Bottom };
                this.Controls.Add(btn);
                this.Controls.Add(txtBox);
                btn.Click += BtnClick;
            }        public void BtnClick(object sender, EventArgs e)
            {
                 MessageBox .Show ("Button Click!");
                if (ButtonClick != null)
                {
                    ButtonClick(sender, e);
                }
            }    } }
    Public Class Form1    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim test As New MyControl
            AddHandler test.ButtonClick, AddressOf TestClick
            Me.Controls.Add(test)
        End Sub    Private Sub TestClick(ByVal sender As Object, ByVal e As EventArgs)
            MsgBox("Test")
        End Sub
    End ClassPublic Class MyControl
        Inherits UserControl    Private btn As Button
        Private txtBox As TextBox    Public Event ButtonClick(ByVal sender As Object, ByVal e As EventArgs)
        Public Sub New()
            btn = New Button With {.Text = "Button", .Dock = DockStyle.Top}
            txtBox = New TextBox With {.Text = "TextBox", .Dock = DockStyle.Bottom}
            Me.Controls.Add(btn)
            Me.Controls.Add(txtBox)
            AddHandler btn.Click, AddressOf BtnClick
        End Sub    Public Sub BtnClick(ByVal sender As Object, ByVal e As EventArgs)
            MsgBox("Button Click!")
            RaiseEvent ButtonClick(sender, e)
        End SubEnd Class