winform 的
fmLogin为登录窗体
fmMain 为主窗体
之前是这样的:
if (new fmMain().ShowDialog() == DialogResult.OK)
{
    Application.Run(new fmLogin());
}
else
{
    return;
}
可以这样
但是问题是
我现在做透明png效果 登录窗体是继承的一个父窗体 现在登录不能打开主界面 程序就自动关闭了 执行了else{return;}
不知怎样解决?谢谢了!

解决方案 »

  1.   

    我贴了啊
    if (new fmMain().ShowDialog() == DialogResult.OK)
    {
        Application.Run(new fmLogin());
    }
    else
    {
        return;

    就是这些 之前都可以的 只是后来登录窗体是继承的一个父窗体 就不知道为什么不可以了
    还有个问题Program.cs里面
    登录窗体继承之前是这样写的 没有问题
    if (new fmLogin().ShowDialog() == DialogResult.OK)
    {
          Application.Run(new fmLogin());
    }
    else
    {
          return;
    }
    但是继承父窗体后就报错:
    窗体 showDialog 试图将不符合要求的窗体设置为它的所有者。窗体不能拥有自身或其所有者。
    就这两个地方
      

  2.   

    第二种:登陆窗体是对话框,当登陆验证成功后,关闭对话框,打开主窗体!你想做第二种,那为什么要继承主窗体呢?先载入主窗体。
    你在主窗体载入时再showdialog登陆窗体就行。
    在process.cs里
    Application.Run(new fmMain()); 在你的frMain窗体里。再加上
    fmLogin.ShowDialog()
    为OK时进行打开主窗体。最后,在fmLogin
      

  3.   

    fmMain这个窗体的实现代码中,需要在窗体关闭前,对其DialogResult赋一个正确的值。否则,后面的比较不会有相等的时候。
      

  4.   

    我不是继承主界面 只是登录界面要做那种png的半透明效果 就做一个窗体调用win32(不懂) 然后让登录窗体继承啊
      

  5.   

    但是问题是现在fmMain主界面打不开 程序自动关闭 退出
      

  6.   

    看看你的代码,好不好:if (new fmMain().ShowDialog() == DialogResult.OK) 
    { //这里,必须等到fmMain显示出来并关闭,返回一个DialogResult.OK之后,才会执行这下面的这一句
        Application.Run(new fmLogin()); 

    else 

        return; 

      

  7.   

    调试program.cs
    报错:窗体 showDialog 试图将不符合要求的窗体设置为它的所有者。窗体不能拥有自身或其所有者。
    就这两个地方
    直接改成application.run(new fmlogin())
    打开fmLogin
    Hide();
    Close();
    if (new fmMain().ShowDialog() == DialogResult.OK)
    {
        Application.Run(new fmLogin());
    }
    else
    {
        return;

    点击登录 执行到else{return;}直接关闭程序
      

  8.   

    难道你要告诉我,fmMain是登录窗体,fmLogin是主窗体?
      

  9.   

    报错:窗体 showDialog 试图将不符合要求的窗体设置为它的所有者。窗体不能拥有自身或其所有者。 
    -----------------------------------
    一个登录窗体,还有子窗体,搞得那么复杂干什么?
      

  10.   

    不是 fmLogin是登录窗体 fmMain是主窗体啊
      

  11.   

    png半透明效果 继承一个窗体搞的 实在找不出其他办法 前辈请指点
      

  12.   

    报错:窗体 showDialog 试图将不符合要求的窗体设置为它的所有者。窗体不能拥有自身或其所有者。 
    ----------------------------------- 
    一个登录窗体,还有子窗体,搞得那么复杂干什么?
    楼主:理下你的思路。
      

  13.   

    嗯 顺便问下png半透明效果有没有什么办法 我现在是单独做一个工程 新建一个窗体 然后引用该dll让登录窗体继承 所以问题就是这个 我也不想搞这么复杂
      

  14.   

    半透明?窗体的Opacity设为0.5就是半透明了。
      

  15.   

    把登录与主窗体做成两个EXE.主窗体通过登录窗体发送相关参数来运行,当主窗体确认所需参数符合要求时关闭登录窗体(两个EXE).
    最简单的是把main设为主窗体,程序运行时先加载主窗体,在主窗体LOAD时显示登录窗口.不知道你怎么搞的.呵呵.