标题:关于C#登陆窗体的问题!
只看楼主
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
结帖率:85.71%
 问题点数:0 回复次数:9 
关于C#登陆窗体的问题!
我要登陆后弹出其他窗体,登陆窗体自动关闭不占用线程,该怎么实现呢?
搜索更多相关主题的帖子: 窗体 登陆 
2009-11-30 21:05
jedypjd
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1096
专家分:4969
注 册:2009-7-27
得分:0 
好像做不到吧

天涯无岁月,歧路有风尘,百年浑似醉,是非一片云
2009-11-30 23:40
athenalux
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:河北石家庄
等 级:小飞侠
威 望:8
帖 子:975
专家分:2514
注 册:2008-11-26
得分:0 
如果登录窗口是主窗口的话,如果关掉,整个应用程序就会退出。要实现这种效果千万别把登录窗口做为主窗口就行了。

QQ:81704464
2009-12-01 08:22
hainandgm
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:111
专家分:475
注 册:2007-6-21
得分:0 
同意3楼
2009-12-01 10:39
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:0 
应该是可以实现的。
先设计好两个窗体,登陆窗体写一个事件LogSuccess,当登陆成功时触发此事件。
设计主窗体,将其Visible属性设置成false。

1.Program(程序入口点。)
程序代码:
using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace LandLoadExample
{
    static class Program
    {
        static FrmMain mainForm;
        static FrmLand landForm;

        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            mainForm = new FrmMain();
            mainForm.VisibleChanged += new EventHandler(mainForm_VisibleChanged);
            mainForm.Visible = false;
            landForm = new FrmLand();
            landForm.LogSuccess += new EventHandler(landForm_LogSuccess);

            Application.Run(mainForm);
        }

        static void mainForm_VisibleChanged(object sender, EventArgs e)
        {
            landForm.ShowDialog();
        }

        static void landForm_LogSuccess(object sender, EventArgs e)
        {
            mainForm.Visible = true;
            landForm.Close();
        }
    }
}

2.FrmLand(登陆窗口)。

程序代码:
using System;
using System.Collections.Generic;
using  System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LandLoadExample
{
    public partial class FrmLand : Form
    {
        public FrmLand()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 自定义的LogSuccess事件
        /// </summary>
        public event EventHandler LogSuccess;

        /// <summary>
        /// 单击OK按钮事件处理
        /// </summary>
        /// <param name="sender">窗体</param>
        /// <param name="e">未使用</param>
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (this.LogSuccess != null)
            {
                this.LogSuccess(this, new EventArgs());
            }
        }
    }
}

3.FramMain.主窗口

using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace LandLoadExample
{
    public partial class FrmMain : Form
    {
        public FrmMain()
        {
            InitializeComponent();
        }
    }
}

LandLoadExample.zip (43.69 KB)
2009-12-01 11:24
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
得分:0 
谢谢各位的解答!

C/C++交流群:65802335
2009-12-01 14:13
long50248120
Rank: 1
等 级:新手上路
帖 子:28
专家分:8
注 册:2009-11-16
得分:0 
this.Hide();  //隐藏登录窗口
DialogResult newform = new Form2().ShowDialog();  //打开登录成功后要运行的窗口
this.Close();  //关闭登录窗口
2009-12-02 13:42
hre521
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-5-19
得分:0 
肥肠肥肠肥肠肥肠肥肠肥肠 肥肠 感谢。
2010-08-30 22:39
zhxx546
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-28
得分:0 
可以在里面添加一个新窗体Form2,
然后编写下面的程序:
form2 obj=new form();
obj.show(); //弹出新窗体
this.visible=flash; //隐藏主程序代码
2010-12-02 23:02
skyrfh2010
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-9-3
得分:0 
回复 6楼 雨夜星光
同意
2011-09-04 23:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-293519-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085400 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved