Vb.net 控制台应用程序-第一个消息框未聚焦

Vb.net 控制台应用程序-第一个消息框未聚焦,vb.net,console-application,messagebox,msgbox,Vb.net,Console Application,Messagebox,Msgbox,我正在开发一个VB.Net控制台应用程序,从用户那里获取ID和密码,当输入无效的ID或密码时,我应该弹出一条消息,但在控制台应用程序中使用消息框时,我发现了一个奇怪的行为。当显示第一个消息框时,它失去了焦点&我们需要明确地将消息框置于焦点。但接下来的消息框是重点 下面是示例代码 Sub Main() Start: Console.WriteLine("Press Enter") Console.ReadLine() MsgBox("Good Day") GoTo

我正在开发一个VB.Net控制台应用程序,从用户那里获取ID和密码,当输入无效的ID或密码时,我应该弹出一条消息,但在控制台应用程序中使用消息框时,我发现了一个奇怪的行为。当显示第一个消息框时,它失去了焦点&我们需要明确地将消息框置于焦点。但接下来的消息框是重点

下面是示例代码

Sub Main()
Start:
    Console.WriteLine("Press Enter")
    Console.ReadLine()
    MsgBox("Good Day")
    GoTo Start
End Sub

只想知道为什么会发生这样的事情&应该怎么做才能使第一个消息框也成为焦点。

您可以使用
MessageBoxOptions.ServiceNotification
在顶部显示对话框

这是从C#应用程序转换而来的,因此不确定这是否是正确的VB.NET(但应该是):

但请注意:

您不应该在控制台应用程序中使用
MessageBox
。这只是两个不同的世界

解释原因:


当您使用控制台远程运行此应用程序时,您期望得到什么?没有办法显示messagebox。使用控制台.WriteLine,但如果要显示错误、警告或良好的内容,请使用不同的颜色。

您可以使用MessageBoxOptions.ServiceNotification在顶部显示对话框

这是从C#应用程序转换而来的,因此不确定这是否是正确的VB.NET(但应该是):

但请注意:

您不应该在控制台应用程序中使用
MessageBox
。这只是两个不同的世界

解释原因:


当您使用控制台远程运行此应用程序时,您期望得到什么?没有办法显示messagebox。使用控制台.WriteLine,但如果要显示错误、警告或良好的内容,请使用不同的颜色。

您可以使用MessageBoxOptions.ServiceNotification在顶部显示对话框

这是从C#应用程序转换而来的,因此不确定这是否是正确的VB.NET(但应该是):

但请注意:

您不应该在控制台应用程序中使用
MessageBox
。这只是两个不同的世界

解释原因:


当您使用控制台远程运行此应用程序时,您期望得到什么?没有办法显示messagebox。使用控制台.WriteLine,但如果要显示错误、警告或良好的内容,请使用不同的颜色。

您可以使用MessageBoxOptions.ServiceNotification在顶部显示对话框

这是从C#应用程序转换而来的,因此不确定这是否是正确的VB.NET(但应该是):

但请注意:

您不应该在控制台应用程序中使用
MessageBox
。这只是两个不同的世界

解释原因:


当您使用控制台远程运行此应用程序时,您期望得到什么?没有办法显示messagebox。如果您想显示错误、警告或好消息,请使用控制台.WriteLine,但颜色不同。

为什么要显示控制台应用程序中的消息框?是的,可以做到;不,这不是个好主意。向用户提供应用程序内部的反馈,即Console.WriteLine。另外,摆脱那种“转到”模式,永远不要再使用它。你为什么不在那里使用
Do
循环呢?嗨@jmchiliney谢谢你的回复。我使用GoTo是因为我需要从头开始(再次询问ID和密码并验证它),所以尽管它会保存一些代码行。但无论如何,我会记住,我不会把它用于任何其他目的。然而,我的问题不是使用或不使用任何东西,而是为什么第一个消息框不聚焦,而所有后续消息框都聚焦。如果有人能让第一个消息框也处于焦点位置,那么它就能解决我的整个问题。你为什么要在控制台应用程序中显示消息框?是的,可以做到;不,这不是个好主意。向用户提供应用程序内部的反馈,即Console.WriteLine。另外,摆脱那种“转到”模式,永远不要再使用它。你为什么不在那里使用
Do
循环呢?嗨@jmchiliney谢谢你的回复。我使用GoTo是因为我需要从头开始(再次询问ID和密码并验证它),所以尽管它会保存一些代码行。但无论如何,我会记住,我不会把它用于任何其他目的。然而,我的问题不是使用或不使用任何东西,而是为什么第一个消息框不聚焦,而所有后续消息框都聚焦。如果有人能让第一个消息框也处于焦点位置,那么它就能解决我的整个问题。你为什么要在控制台应用程序中显示消息框?是的,可以做到;不,这不是个好主意。向用户提供应用程序内部的反馈,即Console.WriteLine。另外,摆脱那种“转到”模式,永远不要再使用它。你为什么不在那里使用
Do
循环呢?嗨@jmchiliney谢谢你的回复。我使用GoTo是因为我需要从头开始(再次询问ID和密码并验证它),所以尽管它会保存一些代码行。但无论如何,我会记住,我不会把它用于任何其他目的。然而,我的问题不是使用或不使用任何东西,而是为什么第一个消息框不聚焦,而所有后续消息框都聚焦。如果有人能让第一个消息框也处于焦点位置,那么它就能解决我的整个问题。你为什么要在控制台应用程序中显示消息框?是的,可以做到;不,这不是个好主意。向用户提供应用程序内部的反馈,即Console.WriteLine。还有,把它扔掉
MsgBox( "Good Day"
      , ""
      , MessageBoxButtons.OK
      , MessageBoxIcon.Asterisk
      , MessageBoxDefaultButton.Button1
      , MessageBoxOptions.ServiceNotification
      )