2011-06-09 83 views
2

Ive得到了有关Windows窗体一个基本的问题,即时通讯设计在Visual C#Express上的应用程序,它需要一个登录,继承人那里IM卡,Windows窗体MSN Messenger的登录

采取MSN Messenger的负荷了,你得使用/通提示,放在详细信息,然后你会得到你的联系人,

你怎么会复制这样的事情

在simpilist形式是这样的2种独立的形式?即登录表单和联系表单?或者这是一个具有动态控制的表单? etc

+1

以最简单的形式,它会是2是。您将加载显示登录屏幕的应用程序,他们会输入他们的详细信息,然后您会对其进行身份验证。一旦成功,您就可以加载应用程序的主要形式。编辑:把这作为一个评论,因为我敢肯定有人可以给你一个更优雅的解决方案整体。 – Delebrin 2011-06-09 20:18:24

+0

谢谢,即时通讯来自一个PHP/HTML背景,所以即时通讯不会在winforms atall上提示,在您的意见中,我会回到MSN Messenger这里,但是当您登录msn时,会保持与登录相同的高度宽度和屏幕位置,这可能使用两种形式? – stedotmartin 2011-06-09 20:24:56

+0

您应该能够设置表单的高度,宽度和屏幕位置,使其与加载时的登录表单匹配。我主要在Web应用程序中工作,所以在试图为获胜表单提供简单的代码时,我会有点生疏。但它绝对有可能。 – Delebrin 2011-06-09 20:39:00

回答

0

这是我建议的:

  1. 有一个中心的形式在您的应用程序,你可以把它称为“frmMain”换了,专门的的讨论,并确保这种形式加载应用程序启动时的第一件事 -

    Program {Main(){Application.Run(frmMain()); }}

  2. 下一步,将一个中央应用程序级属性管理类,FTPOD - “AppProperties”

  3. 定义,配置和管理登录的用户的实体在这个类
  4. 这是为了让,如果用户已经登录,那么在应用程序的使用寿命中,可以随时轻松访问诸如登录名,ID,电子邮件地址等详细信息,即,任何形式
  5. 在这个类中有一个方法来检查用户是否登录,FTPOD - “IsUserAuthenticated”
  6. 现在当调用“frmMain”的Form_Load事件时,检查用户是否登录
  7. 如果没有,那么打开一个新的形式,要求用户登录凭证,FTPOD - “frmLogin”

``

frmLogin login = new frmLogin() 
login.ShowDialog(this); 
login = null; 
  1. 管理以这种形式(“frmLogin”)身份验证/登录逻辑,或在其业务逻辑
  2. 一旦成功认证为相关的,在‘AppProperties’类设置用户的实体,然后从
  3. 然后关闭从“frmMain”类(一旦验证)打开您的主要功能形式
1

由于没有其他人发布了答案,我会继续前进,并将我的评论移至此处。希望有人能够提供更多的见解。

最简单的形式是2。您将加载显示登录屏幕的应用程序,他们会输入他们的详细信息,然后您会对其进行身份验证。一旦成功,您就可以加载应用程序的主要形式。

然后,您应该可以在显示第二个(主)窗体时设置任何选项,例如根据需要显示它的高度,宽度或屏幕位置。

由于从另一个打开一个窗体的引用和可能的出发点,看看这个问题:Open Form2 from Form1, close Form1 from Form2

希望这会帮助你开始。