登录窗体的问题
各位,我今天在winform下做了一个登录界面,我点击登录按钮的时候会进去另外一个界面,但是怎么关掉这个登录界面啊?有点晕,请各位指教一下吧? 问题点数:20、回复次数:19Top
1 楼kaixin110(kydk.com)回复于 2006-03-10 11:33:33 得分 0
hideTop
2 楼kingdhy(飞鹰)回复于 2006-03-10 11:35:35 得分 0
方法如下:
(1)隐藏登录窗体,不能关闭,因为第一个窗体默认为主窗体,你关闭后整个程序结束了.
(2)在登录后的主窗体中弹出登录窗体,将登录窗体设为对话框模式.Top
3 楼MyLf(不睡觉的鱼)回复于 2006-03-10 11:35:55 得分 2
如果你的登录窗体是应用程序主窗体(就是Application.Run()方法的参数),则将其隐藏,否则就可以直接close.Top
4 楼usxue(尘飞扬)回复于 2006-03-10 11:36:13 得分 0
this.Hide();
然后在调出的窗体中的退出事件中加入
Application.Exit();Top
5 楼diandian82(点点(nothing))回复于 2006-03-10 11:39:27 得分 0
点击登陆窗体确定后,Application.run(主窗体)Top
6 楼lovvver(ElephantTalk.Bright)回复于 2006-03-10 11:49:06 得分 0
比较好的做法是:
登陆窗体:
Application.Run(主窗体);
this.close();
这样就可以了。Top
7 楼adrian_hy(男眼睛)回复于 2006-03-10 16:44:39 得分 0
把FROM2设为主窗体,在加载FROM2的同时,SHOW出FORM1登陆窗体的模态窗体。
如果密码帐号正确,FORM1的DIALOG状态为TURE。
当FORM2接收到FORM1的DIALOG状态为TURE时就把FORM1登陆窗体CLOSE掉。否则就把FORM2窗体CLOSE掉Top
8 楼mbh0210(独孤求败)回复于 2006-03-10 17:30:57 得分 0
隐藏Top
9 楼hawking20001981(东东VC++Primer)回复于 2006-03-11 01:01:15 得分 0
this.visable=false;//隐藏窗体Top
10 楼seeJessica(计院洲洲)回复于 2006-03-11 03:35:03 得分 0
呵呵 也可以这样
this.Hide();
LoadForm load=new LoadForm();
load.ShowDialog ();
this.Show();
this.WindowState=FormWindowState.Maximized;
Top
11 楼FindFullMoon(寻找自己)回复于 2006-03-11 03:36:46 得分 0
好像也就是上面几位说的样子了....
Top
12 楼seeJessica(计院洲洲)回复于 2006-03-11 03:36:53 得分 0
this.Hide();//主窗体隐藏
LoadForm load=new LoadForm();//登录窗体showdiloag
load.ShowDialog ();
this.Show();///主窗体show
this.WindowState=FormWindowState.Maximized;Top
13 楼seeJessica(计院洲洲)回复于 2006-03-11 03:38:37 得分 0
奥 补充一下 在主窗体Load事件中
其实处理这些问题 你最好对winform事件有比较好的认识Top
14 楼yz1199(逃离孤独)回复于 2006-03-11 08:37:40 得分 0
可以用线程来关掉,个人认为隐藏做法不妥当,因为那样也会耗内存,也没有真正达到楼主的意图。
using System.Threading;
private void FormStart()
{
Application.Run(new Form1());//运行1个新的程序窗口(登陆窗体)
}
然后在按钮时间下加
Thread thread=new Thread(new ThreadStart(FormStart));
thread.Start();//定义1个线程;执行FormsStrat函数;
Application.Exit();//程序退出当前窗体Top
15 楼yz1199(逃离孤独)回复于 2006-03-11 08:40:16 得分 0
上面的是加在登陆窗体的
Thread thread=new Thread(new ThreadStart(FormStart));
thread.Start();//定义1个线程;执行FormsStrat函数;
Application.Exit();//程序退出当前窗体
这下面就写
Form2 ff =new Form2();
ff.show();Top
16 楼yz1199(逃离孤独)回复于 2006-03-11 09:21:11 得分 18
楼主不好意思,仔细看了下,这是以前的代码,和你的有点不一样,改了一下,可以 用了
using System.Threading;
private void FormStart()
{
Application.Run(new Form2());//运行1个新的程序窗口(主窗体)
}
然后在按钮时间下加
Thread thread=new Thread(new ThreadStart(FormStart));
thread.Start();//定义1个线程;执行FormsStrat函数;
Application.Exit();//程序退出当前窗体Top
17 楼kxxlqsg(kxxl)回复于 2006-03-11 10:08:16 得分 0
在登录后的窗体frmMain中添加
static void Main()
{
//整个程序启动时先显示登录框,登录成功再显示主界面
frmLogin login = new frmLogin();
login.ShowDialog();
if (frmLogin.blCanLogin == true)
{
Application.Run(new frmMain());
}
}
在登陆窗体frmLogin中添加
public static bool blCanLogin = false; //记录能否验证通过
在frmLogin窗体载入的时候添加
如果用户名密码同时输入正确的时候blCanLoing = true;否则blCanLogin = false;Top
18 楼Philip3(3)回复于 2006-03-17 15:40:04 得分 0
using System;
using System.IO;
using System.Text;
using System.Collections;
namespace PDFGenerator
{
public class PDFGenerator
{
static float pageWidth = 594.0f;
static float pageDepth = 828.0f;
static float pageMargin = 30.0f;
static float fontSize = 20.0f;
static float leadSize = 10.0f;
static StreamWriter pPDF=new StreamWriter("E:\\myPDF.pdf");
static MemoryStream mPDF= new MemoryStream();
static void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer=null;
buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer,0,buffer.Length);
buffer=null;
}
static string xRefFormatting(long xValue)
{
string strMsg =xValue.ToString();
int iLen=strMsg.Length;
if (iLen<10)
{
StringBuilder s=new StringBuilder();
int i=10-iLen;
s.Append('0',i);
strMsg=s.ToString() + strMsg;
}
return strMsg;
}
static void Main(string[] args)
{
ArrayList xRefs=new ArrayList();
//Byte[] buffer=null;
float yPos =0f;
long streamStart=0;
long streamEnd=0;
long streamLen =0;
string strPDFMessage=null;
//PDF文档头信息
strPDFMessage="%PDF-1.1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="1 0 obj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="<< /Length 2 0 R >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="stream\n";
ConvertToByteAndAddtoStream(strPDFMessage);
/**//**//**/////////PDF文档描述
streamStart=mPDF.Length;
//字体
strPDFMessage="BT\n/F0 " + fontSize +" Tf\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage=pageMargin + " " + yPos +" Td\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= leadSize+" TL\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
//实体内容
strPDFMessage= "(http://www.wenhui.org)Tj\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= "ET\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd=mPDF.Length;
streamLen=streamEnd-streamStart;
strPDFMessage= "endstream\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage="2 0 obj\n"+ streamLen + "\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="3 0 obj\n<</Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="4 0 obj\n<</Type /Pages /Count 1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Kids[\n3 0 R\n]\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Resources<</ProcSet[/PDF/Text]/Font<</F0 5 0 R>> >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]\n>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="5 0 obj\n<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="6 0 obj\n<</Type/Catalog/Pages 4 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamStart=mPDF.Length;
strPDFMessage="xref\n0 7\n0000000000 65535 f \n";
for(int i=0;i<xRefs.Count;i++)
{
strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n \n";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="trailer\n<<\n/Size "+ (xRefs.Count+1)+"\n/Root 6 0 R\n>>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="startxref\n" + streamStart+"\n%%EOF\n";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);
mPDF.Close();
pPDF.Close();
}
}
}Top
19 楼Philip3(3)回复于 2006-03-17 15:57:25 得分 0
http://www.aspxboy.com/private/507/default.aspxTop




