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