两种登录方式有什么区别吗

秋天之落叶 2018-11-25 10:41:06
需求:先显示登录窗口,再显示主窗口
方式一:设置登录窗口为启动窗口,密码正确后,关闭登录窗口,调用主窗体。
方式二:设置主窗口为启动窗口,启动后隐藏,模式调用登录窗口,密码正确后,关闭登录窗口,显示主窗口。
请问一下,这两种方式哪一种更优?哪一种对后续有影响?
...全文
706 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
Csdn技术大神 2018-12-04
  • 打赏
  • 举报
回复
看你自己喜欢的了都差别不大
stevenjin 2018-11-28
  • 打赏
  • 举报
回复
要看主窗体业务量来定。否则怎么方便怎么实现
秋天之落叶 2018-11-27
  • 打赏
  • 举报
回复
多谢大家
正怒月神 2018-11-27
  • 打赏
  • 举报
回复
引用 16 楼 秋天之落叶 的回复:
[quote=引用 9 楼 正怒月神 的回复:] 先登录,在显示主界面。这有什么好多说的呢。。。
请教一个问题,登陆的时候肯定会打开连接con.open(),因为有密码验证,以后别的窗体引用连接需要formlogin.con.open()才行,除了Module,有没有其他的方式?[/quote] 这种打开后,访问数据库结束,就close的。干嘛其他模块要使用 formlogin.con.open??? 难道他自己不能Connection con=new Connection(...)吗? 而且统一的sql操作,就应该封装起来。
大白_cc 2018-11-27
  • 打赏
  • 举报
回复
Gui已经满足不了大众了吗
大苟姬 2018-11-27
  • 打赏
  • 举报
回复
体验差别不大的,即使主界面加载巨耗时间,方式二登录是在打开登录时耗时,方式一是主窗口打开时耗时,用方式一吧
eaqpi 2018-11-27
  • 打赏
  • 举报
回复
什么方法都可以,

1-你有一个连接字符串

2-偷懒可以用一个sqlhelp之类的类。

随用随开,用完就关,不用自己特地去关心有没有open。
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
前后概念不一致?没看明白你说的什么意思?我的意思就是那种方式更符合逻辑,后续使用更顺畅一些。
好吧,我最后是这样写的,设置FormStart为启动窗口:
Module FormStart
Public Sub main()
Formlogin.ShowDialog()
If Formlogin.DialogResult = DialogResult.OK Then
FormMain.ShowDialog()
Else
End
End If
End Sub
End Module

登录窗口
Public Class Formlogin
Private Sub Button退出_Click(sender As Object, e As EventArgs) Handles Button退出.Click
End
End Sub

Private Sub Button登录_Click(sender As Object, e As EventArgs) Handles Button登录.Click
if 条件判断为真 then
Me.DialogResult = DialogResult.OK
endif
End Sub
End Class

主窗口略去
Public Class FormMain

高手看看这样有什么问题吗?
  • 打赏
  • 举报
回复
引用 4 楼 秋天之落叶 的回复:
哦,我自己测试了几个,最后确定使用module,以前都是做几个很小很小的应用,直接进入,没有涉及登录的问题,这次需要登录了,试了几个比较纠结,2017版不仅仅支持submain还支持module为启动窗口,那就方便多了,哈哈。
你的帖子描述概念前后根本不一致,无编程(伪)代码说明。你问题中是登录窗体和主窗体,后边到这里其实就含糊其辞了。
  • 打赏
  • 举报
回复
这只是展示方式而已,能有多大影响,不过一般是先登录,登录成功了才加载其它
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
哦,我自己测试了几个,最后确定使用module,以前都是做几个很小很小的应用,直接进入,没有涉及登录的问题,这次需要登录了,试了几个比较纠结,2017版不仅仅支持submain还支持module为启动窗口,那就方便多了,哈哈。
  • 打赏
  • 举报
回复
“设置登录窗口为启动窗口,密码正确后,关闭登录窗口,调用主窗体。”这种逻辑本身就是不可行的,启动窗口根本不能关闭,而是打开主窗体之后隐藏自身、并且监听主窗体的Closed 事件而联动关闭。 所以说,设计逻辑混乱,代码也就写不好。
  • 打赏
  • 举报
回复
你怎样设计逻辑流程,就怎样实现代码。代码不是简单纠结于技术,而是根据业务流程的设计想一致。如果逻辑上就是先登录后产生主窗体,那么就这样设计代码;如果逻辑上就是先产生主窗体然后又登录、然后又显示主窗体,那么就这样设计。编程对于这么简单的逻辑流程切换不会实现,在于技术不了解(例如不懂得 hide、show 功能),但是如果一个程序员说一套而做一套(嘴上说的设计流程跟实际动手写的代码总是不一致)则会造成程序代码出现了品质问题。
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
测试了一下,感觉是用sub main最方便了
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
引用 9 楼 正怒月神 的回复:
先登录,在显示主界面。这有什么好多说的呢。。。

请教一个问题,登陆的时候肯定会打开连接con.open(),因为有密码验证,以后别的窗体引用连接需要formlogin.con.open()才行,除了Module,有没有其他的方式?
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
引用 13 楼 吹风的兔子 的回复:
还有那么复杂的业务逻辑等着你去写呢。
不要在意这些细节 —— 用户体验一样,不用太纠结。

原来都是写几个小程序,这次是要写一个综合应用,怕搭好架子以后会有不方便的逻辑,没想明白后续会出现哪些问题,才来问一下,哈哈
你这么说,我心有所安,嘿嘿
秋天之落叶 2018-11-26
  • 打赏
  • 举报
回复
引用 12 楼 以专业开发人员为伍 的回复:
至于说”先打开登录窗体,然后(隐藏登录窗体之后)打开主窗体“,还是”先打开主窗体,立刻(隐藏之后)打开登录窗体,并且再来显示主窗体“,这个可以以你自己的设计流程为准。只要你说的流程细节跟你实际写出来的代码非常一致,说的和写的是一致的,就不会出问题。如果说一套设计而写代码的逻辑偏了,就会出问题而自己受到自己的干扰而难以 debug。

先不要纠结我说的名词对不对,你的意思是,两种方式都是可以的,只要控制好逻辑就行?
我这么问是担心将来会总是formlogin.con的引用。
而你说的偶尔这个控制台,我反而觉得更好一些。
吹风的兔子 2018-11-26
  • 打赏
  • 举报
回复
还有那么复杂的业务逻辑等着你去写呢。 不要在意这些细节 —— 用户体验一样,不用太纠结。
  • 打赏
  • 举报
回复
至于说”先打开登录窗体,然后(隐藏登录窗体之后)打开主窗体“,还是”先打开主窗体,立刻(隐藏之后)打开登录窗体,并且再来显示主窗体“,这个可以以你自己的设计流程为准。只要你说的流程细节跟你实际写出来的代码非常一致,说的和写的是一致的,就不会出问题。如果说一套设计而写代码的逻辑偏了,就会出问题而自己受到自己的干扰而难以 debug。
  • 打赏
  • 举报
回复
你又去搞控制台程序去了? 窗体程序需要启动窗体,而控制台程序才会用什么 Public Sub main() 或者 Module(模块,并不是你说的“Module 窗体”)。 窗体程序有其完整的消息泵机制。你是用一个控制台程序 main 方法来打开窗体,只会让窗体程序的一些事件出错而以。还是要把你的项目属性设置回到正规的“windows窗体应用程序",为前提。
加载更多回复(3)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧