有这样一段win程序
我在窗体加载时,把一些比如datagrid、textBox、lable等控件加到了、一个tabcontrol控件里面,然后又吧tabControl加到窗体里面,
tabcontrol是这样定义的
tabcontrol.tabpages.add("栏目");
那些控件都放在tabcontrol.tabpages[0].add()里面
现在我想在窗体被加载时,捕捉这些控件,比如当datagrid被加载时,就捕捉datagrid,以此类推,但是我如何做呢,
我一开始在this.ControlAdded事件里面写MessageBox.show(object.gettype().name)出来的却是tabcontrol
后来我在tabcontrol.tabpages[0].ControlAdded的事件里面写MessageBox.show(object.gettype().name)这次我设了断点,当我加载那些datagrid的时候,确实触发了这个事件,但是出来的类型却都是tabpage,
请问高手这是怎么回事
我应该如何实现,我只是要捕捉,然后得到这些控件的类型!

解决方案 »

  1.   

    控件都动态添加的,都用的是同一个Object,我添加一个用Object aaa=new textBox()
    我再添加一个还是aaa=new DataGrid(),为一个区别就是,((TextBox)aaa).name不同,我要已经写了一个方法,通过名字找到它的控件,但是取控件名字没实现(用的都是手动的语句),就想到了当这个控件被加载时,把他发放在全局变量里面的办法,这样就可以动态管理了!谁能帮我解决一下!
      

  2.   

    MessageBox.Show(e.Control.GetType().Name);
    sender是自身,e.Control才是要添加的控件
      

  3.   

    MessageBox.Show(e.Control.GetType().Name);
      

  4.   

    事件传过来一个响应源,就是这个
    private void addfile_ControlAdded(object sender, System.Windows.Forms.ControlEventArgs e)
    {
    MessageBox.Show(e.Control.Name);这个e就是源,告诉事件要对那个源进行处理!
    }