C# 中 new出一个新窗体后,记录下句柄好,怎么再次判断这个句柄好是否有效呢

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:47:18
这位仁兄回答道我的意思上了,我还想问,我做的事new出qq那样的聊天窗口,有可能new出许多窗口,每个窗口的标题不一样,但是又不想让一个好友new处多个聊天窗口,该怎么办呢?如果仅凭窗口标题,或者句柄判断,有点缺乏专业性。不够安全。
如果用任务管理器关闭就不能正确判断了,那就永远别想打开那个聊天窗口了

用任务管理器关也也可以的啊 可能是你用错事件了
在"FormClosed"事件里写

而且如果强制关闭的话 整个程序都会关掉
QQ也是这样的 这样的话 就要重起程序了 那些变量也都恢复了
----------------------------------
关于那个一个好友的对话框只能出现一次这个问题

可以声明一个静态的布尔数组,有多少个好友数组就多大
数组初始值全是false的 如果好友的窗体打开就给那个好友的布尔附值为true.如果窗体关闭,就给那个布尔附值为false

在打开窗口前加上一句
if(buer[X]==false)
{
Form fo=new Form();
//...略
}

不知道这样可不可以解决你的问题..
--------------------------------------
可以传参数过去 把好友的名字传给那个窗体

在打开好友的事件里写
Form form = new Form("好友名");

在聊天窗口的构造函数里写
class Form
{
string name="";
public Form(string name)
{
this.name=name;
}
}

Form form = new Form();
//
if(form==null)
{
//
}

那就要用单件模式了.可以在网上看看.

窗体的重载?
标题可以在每一次new出来之后改变的说
design里面的代码去看看就知道了~~