namespace CS_DrawCartoon
{
// 委托
public delegate void GetAngleRadiusDeletgate(int iAngle , int iRadius);
public partial class frmBzEdit : Form
{
private frmAdjustPoint frmAdjPt;
private void btnTestfrmAdjustPoint_Click(object sender, EventArgs e)
{
if (frmAdjPt == null)
{
frmAdjPt = new frmAdjustPoint();
frmAdjPt.msgSender = this.RotateRecver;
frmAdjPt.Show(this);
}
else
{
if (frmAdjPt.IsDisposed)
{
frmAdjPt = new frmAdjustPoint();
}
frmAdjPt.msgSender = this.RotateRecver;
frmAdjPt.Visible = false;
frmAdjPt.Show(this);//激活窗体 给予焦点
}
}
private void Receiver(int angle, int radius)
{
Console.WriteLine("angle:{0}, radius:{1}", angle, radius);
}
}
}
以上是 Main form 里的代码
以下是从 form里的代码, 从form里有2个updown控件, 当值被改变时, 调用Main form里的Receiver事件做处理
namespace CS_DrawCartoon
{
public partial class frmAdjustPoint : Form
{
public GetAngleRadiusDeletgate msgSender;
public frmAdjustPoint()
{
InitializeComponent();
}
private void AngleUpDown_ValueChanged(object sender, EventArgs e)
{
if (msgSender != null)
{
msgSender( Convert.ToInt32( AngleUpDown.Value ) ,Convert.ToInt32(RadiusUpDown.Value ));
}
}
private void RadiusUpDown_ValueChanged(object sender, EventArgs e)
{
if (msgSender != null)
{
msgSender(Convert.ToInt32(AngleUpDown.Value), Convert.ToInt32(RadiusUpDown.Value));
}
}
}
}