比如一个窗体内有很多的用户图标,双击一个用户便会打开一个窗体,怎么避免同一个用户拥有多个窗体??
解决掉立刻给分!!!!
解决掉立刻给分!!!!
解决方案 »
- c#字符串处理问题!急求!在线等待!
- 未将对象引用设置到对象的实例。
- 请教关于.net 和数据库的问题
- 按Tab键进入TextChanged事件
- 文件夹的移动
- 求高手
- ClickOnce部署问题
- 初学WinForm (c#)的我向大学求教,如Datagrid等某些问题
- 说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
- 在.Net中是否有类似Outlook Express中写邮件和浏览邮件的组件(可显示HTML格式的文档或XML文档)
- dataGridView问题 WINFORM
- c#.net常用函数和方法集
/// <summary>
/// 引入改进的单件模式,保证一个用户之对应一个对话框
/// </summary>
/// <param name="_ui"></param>
/// <returns></returns>
public static ChatForm GetChatFormInstance(MainForm _parent,UserInfo _ui,int _myuid)
{
lock (formtable)//一个静态的formtable表。用于存放已经打开的form,
{
if (formtable.Contains(_ui.Uid))
return (formtable[_ui.Uid] as ChatForm);
else
{
ChatForm cf= new ChatForm(_parent,_ui,_myuid);
formtable.Add(_ui.Uid,cf);
return cf;
}
}
}
for (int i = 0; i < this.MdiChildren.Length; i++)
{
if (this.MdiChildren[i].Name == "CarType")
{
frm = this.MdiChildren[i];
break;
}
}
if (frm == null)
{
this.Refresh();
Member.CarType.ShowCarType(this) ;//打开的方法
}
else
{
frm.BringToFront();
frm.Activate();
}
//打开的方法:
public static void ShowCarType(Form FName)
{
CarType frm = new CarType();
frm.MdiParent = FName ;
frm.Show();
}
如果是:在窗体中加一个public static arrylist;把用户名作为参数传递到要打开的窗体,打开之前判断用户名是否存在 arrylist中,不存在则把用户名增加到 arrylist 中,打开窗体,如果存在在不重复打开。窗体关闭时从arrylist删除用户。
bool isCreated;
//创建一个互斥体,使窗体只能创建一个实例。
Mutex mutex = new Mutex(true, "要创建的窗体名", out isCreated);
if (isCreated)
{
Form1 form1 = new Form1();
form1.ShowDialog();
mutex.ReleaseMutex();
}