C# 的老大们 为什么 我老是切换窗口不成功
有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() 窗口依然是不显示的 还提示 。。类错误