Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有条件地重新打开已关闭的窗体_C#_Winforms - Fatal编程技术网

C# 有条件地重新打开已关闭的窗体

C# 有条件地重新打开已关闭的窗体,c#,winforms,C#,Winforms,我已经建立了一个基于用户登录使用的程序。我有一个main表单和一个userhandling表单。如果没有登录,如何触发userform 我的mainform是从Program.cs调用的,在类的init中,我检查是否没有用户登录。如果是这种情况,我打开用户可以登录的userform。当他登录时,表单关闭,他/她可以使用主表单。现在,当用户注销时,问题就出现了。我将登录的用户存储在mainform的一个列表中,这样我可以感觉到一个用户是否登录。我的程序可以同时有多个用户登录,但我希望某种循环不会占

我已经建立了一个基于用户登录使用的程序。我有一个main表单和一个userhandling表单。如果没有登录,如何触发userform

我的mainform是从Program.cs调用的,在类的init中,我检查是否没有用户登录。如果是这种情况,我打开用户可以登录的userform。当他登录时,表单关闭,他/她可以使用主表单。现在,当用户注销时,问题就出现了。我将登录的用户存储在mainform的一个列表中,这样我可以感觉到一个用户是否登录。我的程序可以同时有多个用户登录,但我希望某种循环不会占用整个程序,如果我的userlist为空,它会自动再次打开userform

我只是想知道如何解决这个问题。有人能帮我吗

编辑: 添加了程序流的图片以帮助简化问题:

程序第一次被打开。没有用户登录,因此打开userhandling表单 此时将打开userhandling表单。当用户完成并锁定应用程序后,进入步骤3 在这一步中,我想自动将用户发送到userhandlingform,因为我不希望用户在未登录的情况下使用mainform。我不知道如何重新打开userhandling表单。 Userhandlingform已打开,可以进行新登录。 我想去一些类似的地方:

while(user is logged in && no userhandlingform is open) { show userhandlingform }

但由于它是一个winforms应用程序,它通过不同类型的组件进行导航,我不知道在哪里以及如何实现这一点。这是一件非常罕见的事情吗?我是否以错误的方式面对此问题?

有多个用户登录到winforms程序?它是从网络上运行的吗?如何实现身份验证?它听起来更像是一个网站而不是桌面应用程序。是的,可以有多个用户登录。Im使用一组用户,每个用户都可以通过使用密码激活他/她的会话,当用户完成时,想法是锁定应用程序。它是从网络上运行的是的,在某种程度上。应用程序的多个实例正在使用同一数据库。我不知道你所说的授权是什么意思。对数据库的身份验证是正常的sqlauth而不是windows身份验证,对用户的身份验证是从数据库中的表中检查的。这不是一个网站,而是一个桌面应用程序:为什么这个问题被降级了?有什么问题吗?