首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

坐待回复:C#跨窗体操作控件,求详细代码改错

2012-10-08 
坐等回复:C#跨窗体操作控件,求详细代码改错C# code窗口1 的代码namespace HistoryGame{public delegate vo

坐等回复:C#跨窗体操作控件,求详细代码改错

C# code
窗口1 的代码namespace HistoryGame{    public delegate void CloseForm();      public partial class FrmSuspend : Form    {                public FrmSuspend()        {            InitializeComponent();        }        public event CloseForm FrmSuspendClose;          public void picContinue_Click(object sender, EventArgs e)        {            FrmSuspendClose();        }窗体2namespace HistoryGame{    public partial class FrmSuspendCopy : Form    {        public FrmSuspendCopy()        {            InitializeComponent();        }        FrmSuspend frc = new FrmSuspend();        void CloseBySuspend(bool topmost)        {            this.DialogResult = DialogResult.OK;            this.Close();        }        private void FrmSuspendCopy_Load(object sender, EventArgs e)        {        }        private void pictureBox1_Click(object sender, EventArgs e)        {            frc.FrmSuspendClose += new CloseForm(CloseBySuspend);        }    }}为什么窗体1单击后出现 FrmSuspendClose(); 未进行实例化。的错误,请问什么情况。


我要实现的效果是从窗口1的按钮单击后调用窗体2(CloseBySuspend)的方法,请问有没有更好的方案,求方案。

[解决办法]
可以直接实例化调用就行了
public void picContinue_Click(object sender, EventArgs e)
{
FrmSuspendCopy frm2=new FrmSuspendCopy();
frm2.CloseBySuspend(true);
}
[解决办法]
你那2个窗体看起来没任何关联


你上面的代码2个窗体还没关联,虽然在FrmSuspendCopy中实例了FrmSuspend窗体,但是没有加载
frc.FrmSuspendClose += new CloseForm(CloseBySuspend);

C# code
namespace HistoryGame{    public partial class FrmSuspendCopy : Form    {        public FrmSuspendCopy()        {            InitializeComponent();        }        FrmSuspend frc = new FrmSuspend();        void CloseBySuspend(bool topmost)        {            this.DialogResult = DialogResult.OK;            this.Close();        }        private void FrmSuspendCopy_Load(object sender, EventArgs e)        {          frc.FrmSuspendClose += new CloseForm(CloseBySuspend);        }        private void pictureBox1_Click(object sender, EventArgs e)        {                 }    }}
[解决办法]
窗体 1中 FrmSuspendClose () 实例在哪? //就是这个frc.FrmSuspendClose += new CloseForm(CloseBySuspend);

void CloseBySuspend(bool topmost)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
这个改成 public 然后在 窗体1中 绑定到 FrmSuspendClose 上

热点排行