惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

博客园 - 清雷

湘江老厨聚餐 我的青春 今日感想 东莞一日游 HP MC/SG 双机安装心得 周末的狂想 汉字转拼音的例子 回忆大学 Asp.Net下的DataGrid的多层表头 设置窗体背景图片,并且让图片随着窗体的大小的调整而调整大小 VS无法调试智能设备程序的解决方案 VS.Net下的新的单元测试工具-TestDriven.NET 怀念我的大学(2) windows消息大全 在.NET 中使用WIN32 API的宝库 一个封装的异步Socket客户端 一个很好的C#题目 开发.NET CF 蓝牙的通信模块 怀念我的大学(1)
显示主窗体前显示登陆窗口的完美解决方案
清雷 · 2005-09-13 · via 博客园 - 清雷

    想要在显示主窗体前先显示登陆窗口,于是在登陆窗体上设置"登陆","取消"两个Button,在VS中设置登陆按钮的DialogResult 是OK,取消按钮为Cancel.显示窗体时,用户点击登陆,如果用户的登陆信息是错误的,登陆窗体照样会关闭,这时候你不得不再次把登陆窗体给Show出来,这时候,你会发现要用一个while(true)的循环结构.
 每次看到while(true)的结构就觉的不爽,而且这种实现方式窗体会闪烁,在网上找了一些资料,都很不全,结合一下,给出了我的实现方式:
  首先,设置登陆按钮和取消按钮的DialogReuslt为none;
        然后,为登陆按钮添加单击事件:

private void button1_Click(object sender, System.EventArgs e)
        
{
            
if(user.Login())
            
{
                
this.DialogResult = DialogResult.OK;
                
this.Close();
            }

            
        }

   然后,改写Main函数:

    [STAThread]
        
static void Main() 
        
{
            LoginForm loginForm 
= new LoginForm();
            loginForm.ShowDialog();
            
if( loginForm.DialogResult.Equals(DialogResult.OK))
            
{
                Application.Run(
new MainForm());
            }

        }

这样一个完美的登陆模块就实现啦