能否通过name控制窗口

kres520 2009-03-04 08:33:11
正在做一个类似QQ的程序,现在我有一个form3,是用来显示消息的。现在要实现点击一个好友就弹出一个form3,我把每个弹出的from3的name用好友的ID来命名:this.name=ID;现在有一个问题,请问能不能通过name来确定到底是哪个form3,比如我这个好友的聊天窗口已经打开了,我再双击这个好友的时候就不再新开一个窗口。还有就是收到好友消息的时候要显示到对应的form3里,请问如何解决?如果不是通过name的方法请问有没有其他方法?在此谢过
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kres520 2009-03-04
  • 打赏
  • 举报
回复
哈哈太谢谢您啦!拜ing~
天乐 2009-03-04
  • 打赏
  • 举报
回复

//类的字段
Dictionary <string,form3> dict = new Dictionary <string,form3>();
//双击事件中代码
form3 frm =null;
if(dict.ContainsKey(friend.id)) //修改了这里,漏了个Key
{
//已打开聊天窗口
form3 frm = dict[friend.id];
}
else
{
////未打开聊天窗口
frm = new form3();
frm.Name = friend.id;
dict.add(frm.Name,frm);
}
//继续你的工作

liudeqing2008 2009-03-04
  • 打赏
  • 举报
回复
先去创建一个form实例然后在判断
例如:
Form3 form = new Form3();
if (form.State==form.true)
{
return;
}
else
{
form.Show();
}
天乐 2009-03-04
  • 打赏
  • 举报
回复
简单整理一下

//类的字段
Dictionary <string,form3> dict = new Dictionary <string,form3>();
//双击事件中代码
form3 frm =null;
if(dict.Contains(friend.id))
{
//已打开聊天窗口
form3 frm = dict[friend.id];
}
else
{
////未打开聊天窗口
frm = new form3();
frm.Name = friend.id;
dict.add(frm.Name,frm);
}
//继续你的工作
gisyellow 2009-03-04
  • 打赏
  • 举报
回复
1楼的方法很好。
天乐 2009-03-04
  • 打赏
  • 举报
回复
可以,使用字典保存所有form3的实例,以name做key


Dictionary<string,form3> dict = new Dictionary<string,form3>();

假设新的一个form3:(这是大意,请修改为自己的代码)
form3 frm = new form3();
frm.Name = friend.id;
dict.add(frm.Name,frm);

将来查找时,根据好友id即可取出frm,可以把消息显示在该frm上


if(dict.Contains(friend.id))
{
form3 frm = dict[friend.id];
}

111,126

社区成员

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

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

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