有两个自定义控件:UserControlA,UserControlB.分别布局于MainForm的Panl1和Panl2中。
现在UserControlA中有一点击事件,如何触发UserControlB中的方法UserControlBMehtod啊?
而且UserControlBMehtod中要使用到UserControlB中传递过来的参数。
大虾们能否提供点思路啊?
现在UserControlA中有一点击事件,如何触发UserControlB中的方法UserControlBMehtod啊?
而且UserControlBMehtod中要使用到UserControlB中传递过来的参数。
大虾们能否提供点思路啊?
public degleate void XXHandle(需要传递的参数);public class MainFoem : Form
{
public event XXHandle XX事件; private void UserControlA_Click(object senderer,...)
{
if (XXHandle != null)
{
XXHandle(参数);
}
} private void On_XX事件(...)
{
//处理
UserControlB.Click(...);
}
}
但是我的UserControlA是放System.Windows.Form.PictureBox的,Dock为Fill,这样点击事件就为Picture的点击事件。
UserControlA、UserControlB为MainForm中的私有控件类,UserControlA类怎样能调用UserControlB中的方法呢!?
觉得这个方法应该可以实现,但是我要的不是UserControA_Click事件,而是UserControlA.PictureBox的Click,PictureBox为Fill,
所以在UserControlA中写了个事件,但是UserControlA中还是引用不了UserControlB。
UserControlB已经在MainForm中实例化了!
{
get
{
return _iabc;
}
set
{
if (_iabc != value)
{
_iabc = value;
//触发的方法
UserControlBMehtod(_iabc);
}
}
}
修改该属性的值就可以触发你的方法,并且该属性的值可以作为参数传递给UserControlBMehtod,属性可以用objec,不一定是string
{
public UserControlA()
{
InitializeComponent();
} private void pictureBox1_Click( object sender, EventArgs e )
{
this.OnClick( e );
}
}
form里:
private void userControlA1_Click( object sender, EventArgs e )
{
这里可以操作ControlB
}