写了一个自定义控件 里面是一个ComboBox 但是在用这个控件的时候 不能用ComboBox的 selectValue的事件,那么如何为这个自定义控件+上selectValue事件呢?

解决方案 »

  1.   

    把ComboBox的modifier 设置为public.
      

  2.   

    public event MyControlComboxEventHandler myCombox;
    ..........
    public delegate void MyControlComboxEventHandler(object sender, FlashRmenuEventsArgs e);   
    private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
            {
                     myCombox(sender,e);
            }为自定义控件定义事件.
      

  3.   

    public event EventHandler youEvent;//定义事件if (youEvent!=null)
    {
        youEvent(this, new EventArgs());//引发事件
    }
      

  4.   

    把自定义控件里面的ComboBox 设为Public ,这样就可以访问ComboBox 了
      

  5.   

    还有如果设为public的改什么时候调用那个函数呢?
      

  6.   

    就是知道改什么时候调用ComboBox的SelectvalueChange事件 呀
      

  7.   

    可以这样! 
    ((ComboBox)自定义控件名.Controls["自定义控件里的ComboBox名"]).SelectedValueChanged+=new EventHandler(Form1_SelectedValueChanged);
      

  8.   

    自定义控件public partial class UserControl1 : UserControl
        {
            public event EventHandler mySelectedIndexChangedHandler = null;        public UserControl1()
            {
                InitializeComponent();
            }        private void UserControl1_Load(object sender, EventArgs e)
            {
                this.comboBox1.SelectedIndex = 0;
            }        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (null != this.mySelectedIndexChangedHandler)
                    mySelectedIndexChangedHandler(sender, e);
            }
        }在Form1种调用public partial class Form1 : Form
        {
            private UserControl1 uc1 = new UserControl1();        public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                uc1.mySelectedIndexChangedHandler += new EventHandler(uc1_mySelectedIndexChangedHandler);            uc1.Location = new Point(5, 5);
                this.Controls.Add(uc1);
                uc1.Show();
            }        private void uc1_mySelectedIndexChangedHandler(object sender, EventArgs e)
            {
                this.label1.Text = (sender as ComboBox).Text;
            }
        }