C# WinForm窗体
我不想弹出那么多窗体,按一下“文件”弹出一个,再按下,就不弹了,可我按了4下,就出来4个窗体,有什么办法解决?有代码发代码,那什么bool isOpen = false;
这类方法我试过了,不行,还有什么别的,能设置窗体属性的就说设置什么属性,用代码设置就发代码。 --------------------编程问答-------------------- 不要用SHOW,用showdialog --------------------编程问答-------------------- 非顶级窗体不能显示为模式对话框。在调用 showDialog 之前应从所有父窗体中移除该窗体。 --------------------编程问答-------------------- 我这是MDI窗体,不是SDI --------------------编程问答-------------------- 判断该窗提是否已经存在,存在就RETURN。。。 --------------------编程问答-------------------- 设个参数就可以搞定了啦 --------------------编程问答-------------------- 怎么设参数?发代码,谢谢了! --------------------编程问答-------------------- 子窗体体设置成父窗体的全局变量,在要显示的时候加个判断:
比如子窗体名为childForm
if(childForm == null)
{
childForm = new ChildForm();
}
childForm.show();
或者直接用ShowDialog() --------------------编程问答-------------------- --------------------编程问答-------------------- 7楼的对,
用ShowDialog()简单点 --------------------编程问答-------------------- 写一个单件模式 --------------------编程问答-------------------- 无法访问已释放的对象。
对象名:“InsertData”。
7楼的大哥,别忽悠我行不?第一次那样是不多弹了,可我关了再按文件,就异常````
代码写死了啊 --------------------编程问答-------------------- 楼主大哥,你的InsertData是怎么定义的?要把它作为类的变量,而不是属于某个方法的局部变量。 --------------------编程问答-------------------- 办法是有,但都不是什么好办法
等待高手 --------------------编程问答-------------------- 你新建一个Form,你看看它的代码,如果没有Windows窗体的设计代码,那就是我错了 --------------------编程问答-------------------- mCh =new frmChild;
if (mCh.Created)
{
mCh.BringToFront();
}
else
{
mCh = new frmChild();
mCh.MdiParent = 父窗体;
mCh.Show();
}
--------------------编程问答-------------------- 写错一点,补充一下。
frmChild mCh =new frmChild();
if (mCh.Created)
{
mCh.BringToFront();
}
else
{
mCh = new frmChild();
mCh.MdiParent = 父窗体;
mCh.Show();
}
--------------------编程问答-------------------- public partial class frmMain : Form
{
.........
frmChild mCh =new frmChild(); //是这里先定义一下。
}
以下代码是在frmMain里打开子窗体时使用。
if (mCh.Created)
{
mCh.BringToFront();
}
else
{
mCh = new frmChild();
mCh.MdiParent = this;
mCh.Show();
}
--------------------编程问答-------------------- kankan --------------------编程问答-------------------- 可以写这样一个方法解决问题,其中第一个参数是 mdi 父窗体,第二个参数是 mdi 子窗体的name属性。
private void ShowSubForm(Form ParentForm, string SubFormName)
{
Form childForm;
bool flag = false;
if (ParentForm.MdiChildren.Length != 0)
{
int childCount = ParentForm.MdiChildren.Length;
for (int i = 0; i < childCount; i++)
{
childForm = ParentForm.MdiChildren[i];
if (childForm.Name == SubFormName)
{
flag = true;
childForm.Activate();
break;
}
}
}
if (!flag)
{
childForm = (Form)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("在这里写命名空间名称" + SubFormName);
if (childForm == null)
{
MessageBox.Show("没有找到窗口!");
return;
}
childForm.MdiParent = ParentForm;
childForm.Show();
}
}
然后调用该方法就可以了。
补充:.NET技术 , C#