zoukankan      html  css  js  c++  java
  • 通过登录窗体,登录不同的窗体,同时关闭登录窗体

    程序背景:有一个登录窗体,有三个子窗体,通过登录窗体上的选择不同打开不同的子窗体,同时关闭登录窗体。

    在网上找到时候发现有说无法关闭登录窗体的,有说用隐藏的,我不知道我这个方法是不是一个好的方法,但至少是一种思路,仅供参考。

    主要思路:在程序运行时通过ShowDialog(),打开登录窗体,当然要先实例化,然后找到登录窗体上的RadioButton控件,判断其属性,根据属性值不同打开不同的窗体(即通过Application.Run()方法打开)。

    程序实现:

    1:)  登录窗体上有三个RadioButton,选择不同,打开不同的窗体

    2:)  修改 Program 里的方法,实现判断RadioButton的Name属性,然后使用Application.Run(),打开不同的窗体

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace UI
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                //Application.Run(new LoginForm());
    
                //实例化LoginForm窗体的对象
                LoginForm loginForm = new LoginForm();
    
                //模态窗体打开LoginForm,并判断其DialogResult
                if (loginForm.ShowDialog() == DialogResult.OK)
                {
                    //获得GroupBox控件里的子控件集合
                    GroupBox gb = (GroupBox)loginForm.Controls.Find("gbCheck", true)[0];
                    RadioButton rdo = null;
                    //遍历GroupBox控件里的子控件,转换为 RadioButton 类型的控件,方便后面判断其Name属性
                    foreach (Control item in gb.Controls)
                    {
                        rdo = item as RadioButton;
                    } 
                    //根据Name属性,打开不同的窗体
                    if (rdo.Name == "TaskForm")
                    {
                        Application.Run(new MainTaskForm());
                    }
                    else if (rdo.Name == "UserForm")
                    {
                        Application.Run(new MainUserForm());
                    }
                    else
                    {
                        Application.Run(new MainProjectsForm());
                    }
                }
            }
        }
    }

    程序总结:其实主要是ShowDialog()的使用,加上条件判断,方法仅供参考

  • 相关阅读:
    React组件的生命周期
    机器人api
    智能机器人
    已复制该虚拟机 之后需要的处理工作
    在虚拟机上安装CentOS6.5(minimal)
    fastdfs
    redis安装
    FtpClient上传文件异常:java.net.SocketException: Connection reset
    redis的学习笔记
    git命令2
  • 原文地址:https://www.cnblogs.com/wanly/p/3415255.html
Copyright © 2011-2022 走看看