C# 的老大们 为什么 我老是切换窗口不成功

cppowner 2008-07-04 06:26:26
有2个窗口
第一个打开第二个时候关闭
第二个打开第一个的时候关闭
这个时候
因为第一窗口需要实例化其他的类
所以不能在第二个窗口关闭的时候
重新实例化也就是不能重复new 出来
要保存第一个窗口的干净

所以

我采用了委托方法
!号 C++ 是 POSMESSAGE 和SENMESSAG
。。。

开始吧


贴下代码

FORM1 的代码如下


namespace ModelApparel
{
public partial class Form1 : Form
{
//建立全局变量
/// <summary>业务逻辑层对象</summary>
private CFMBL _bl;
/// <summary>日志对象</summary>
private Logging _log;
/// <summary>RFID业务层对象</summary>
private RFIDBL _rfidBl;
ConsumerInterface MyConsumerInterface;
private const int WaitFor = 100;


public Form1()
{
InitializeComponent();
}

private void TestPassword(string TagUid, int Password)
{
_bl.GetReturnPassword(TagUid, Password);

}
private void button1_Click(object sender, EventArgs e)
{

string TagUid = "0";
TagUid = _rfidBl.ReadUid();
tbTagUid.Text = TagUid.Trim();
//System.Threading.Thread.Sleep(WaitFor);//考虑到读卡需要缓冲故设置了一个缓冲
if (TagUid == "0")
{
MessageBox.Show("请检查是否放入卡或刷卡位置不正确");
}
else
{
if(_bl.GetReturnPassword(TagUid,Convert.ToInt32(tbpassword.Text.Trim()))!=0)
{
ModelApparel.Form1.ActiveForm.Visible = false;
MyConsumerInterface = new ConsumerInterface();
MyConsumerInterface.MyEvent += new ConsumerInterface.MyDelegate(ShowMYActive);
MyConsumerInterface.ShowDialog();

}
}

}

private void Form1_Load(object sender, EventArgs e) //load函数
{

_rfidBl = new RFIDBL();//实例化
_log = new Logging();
_bl = new CFMBL();
MyConsumerInterface = new ConsumerInterface();//C# 咋释放呢 。。 不管先


}
void ShowMYActive()
{
ModelApparel.Form1.ActiveForm.Visible = true;

}


}
}


Form2的代码 为


private void ConsumerInterface_FormClosed(object sender, FormClosedEventArgs e)
{
if (MyEvent != null)
{
MyEvent();
}
}

private void button1_Click(object sender, EventArgs e)
{
if (MyEvent != null)
{
MyEvent();
}
}


}

最后MyEvent() 窗口依然是不显示的 还提示 。。类错误
...全文
95 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,651

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧