我看到两个错误:
1、if (f.GetType()=typeof(FormName))这是一个付值语句,而这里应该是条件语句,少个“=”;
2、ff.MdiParent = this;这里的ff没有定义,是不是应该是f.MdiParent = this;
1、if (f.GetType()=typeof(FormName))这是一个付值语句,而这里应该是条件语句,少个“=”;
2、ff.MdiParent = this;这里的ff没有定义,是不是应该是f.MdiParent = this;
解决方案 »
- [求助]当前上下文中不存在名称"sender"等等...
- 怎么让打印预览页面一显示就直接选定 仅打印选定框架 代码如下:
- 怎样把word导成excel?
- 请问一个数据导入到oracle中的乱码问题!
- 关于marshal的用法!!(急)
- Button的简单问题
- C# SetForegroundWindow()问题
- 如何在DotNet中获取主板或CPU的唯一标示号?急!!!!!!在线等待!!!!
- datagrid如何删除一行呀
- 问一个很有争议的问题,学C#好?学JAVA好?学C#之前要有什么萁础?一定要学WINDOWS下编程吗,先谢了
- 我想问一下.net 和JAVA 比较起来哪个用的更爽些啊?在技术方面哪位更强吗?
- c#.net应用程序中调用word“宏”的问题
if (f.GetType()=typeof(FormName))
如果f是主窗口的mdichildren,那么f的mdiparent必然是主窗口,下面的语句多此一举
如果不是,而主窗口有n个类型不是FormName的子窗口的话,else语句会创建n个类型是FormName的子窗口,搞不好会死循环也说不定应该在foreach里面对类型是FormName的窗体计数,如果是0则添加一个类型是FormName的子窗体,否则就什么也不作
foreach(Form frm in this.MdiChildren)
{
if(frm.GetType()== typeof(FormName))
{
frm.Active();
IsShowed = true;
break;
}
}
if(!IsShowed)
{
FormName ff = new FormName();
ff.MdiParent = this;
ff.Show();
}
提示:找不到类型或命名空间名称“FormName”(是否缺少 using 指令或程序集引用?) private void ShowMdiForm(Form FormName) {
if (this.MdiChildren.Length==0)
{ FormName ff = new FormName();
ff.MdiParent = this;
ff.Show();
return;
}
foreach(Form f in this.MdiChildren)
{
if (f.GetType()==typeof(FormName))
{
//f.MdiParent = this;
f.Show();
}
else
{
FormName ff = new FormName();
ff.MdiParent = this;
ff.Show();
}
}
}
if(f.GetType().ToString()==FormName.GetType().ToString())试试
private void menuItemAdviceSent_Click(object sender, System.EventArgs e)
{
if(FormIsOpen("frmAdviceSend"))return;
frmAdviceSend frm=new frmAdviceSend();
frm.ShowDialog();
}private bool FormIsOpen(string sFormName)
{
bool bFormIsOpen=false;
for(int k=0;k<this.MdiChildren.Length ;k++ )
{
if (this.MdiChildren[k].Name.ToString()==sFormName)
{
this.MdiChildren[k].Activate();
bFormIsOpen=true;
break;
}
}
if(bFormIsOpen)
{
this.ActiveMdiChild.WindowState =System.Windows.Forms.FormWindowState.Normal ;
this.ActiveMdiChild.Activate();
return bFormIsOpen;
}
else return false; }
在子窗体类中添加以下代码,并且原构造函数由public -> protected窗体类中的代码:private static frmEditMap mInstance = null;
//单例模式创建以及维护窗体类,mInstance为其单一实例,通过Instance属性得到该实例对象
//在窗体的closed事件中将mInstance重置
//原构造函数由public -> protected
public static frmSample Instance
{
get
{
if( mInstance == null )
{
mInstance = new frmSample();
}
return mInstance;
}
}然后通过以下代码调用:frmSample frm = frmSample.Instance;
frm.ShowDialog();最后在close事件中
Instance = null;
如何 写一个通用的show函数只创建一个窗体的实例那 ?