父窗体有工具栏,具体功能有字体的加粗、倾斜、下划线
子窗体内只有一个richTextBox。要实现的功能:
1,选中子窗体中文本框的文字,用父窗体能将其设为粗体斜体等。
2,选中子窗体中的文本框文字,父窗体工具栏上的 加粗、倾斜等按钮根据内容上浮、下沉。。显示该文本属性。问:
1,子窗体中怎么获得父窗体中按下了什么键?
2,父窗体怎么访问子窗体中的文本框内的文字来判断其属性?急求。请高手不吝赐教!

解决方案 »

  1.   

    父窗体抛Event, 子窗体接相应事件即可例如,父窗体有个OnBold的加粗事件,子窗体实例化时监听该事件,当父窗体的加粗按键按下时,父窗体抛出OnBold事件,子窗体听到后做相应动作
      

  2.   

    如果是mdi的可以使用ActiveMdiChild来获取当前获得焦点的窗口 然后通过该窗口可以访问对应的控件和函数.
      

  3.   

    感谢楼上的几位大侠!
    一楼:这里的共享型指的是不是public?如果是,我试过了,父窗体还是访问不到子窗体里边的文本框
    二楼:父窗体抛出了事件,大概就是新建一个eventF,那子窗体监听eventF是不是也新建一个eventC,然后eventC+=eventF;?
    三楼:这个委托帮助最大,昨天百度上有看过相关的委托一个string类型参数的。这个函数咋委托呀?我先找找,应该可以解决。
    四楼:activeChild我也试过啦,也是访问不到。只能访问到基本form类的属性,比如name等。
    继续奋斗解决ing...
      

  4.   

    委托大概也就是一个构造过程,像构造一个结构体一样。
    1.构造:委托先要构造一个名字,用到delegate关键字(同struct,格式如:public delegate int TypeName(int a,int);)。
    2.声明变量:delegate一个TypeName之后,相当于就生成了一种新的类型,可以用这个类型来声明变量(如TypeName myDdelegate;),只是这个变量是一个函数类型。
    3.赋值:上一步声明了变量,这里自然要对变量赋值,可以myDdelegate=new ...(...);,赋值的方法有多种,这里使用new方法,将一个已经存在的函数名赋值给我的代理函数。
    4.使用:int getValue=myDelegate(a,b);这样就不用管函数具体干嘛了,参数个数和类型及其对应的位置要匹配。
    如上,声明为public的函数,我们就可以“拿过来”用了。就是说:“你帮我代理一下!”