如何在VB中打开控制台

时间:2014-01-10 21:56:51

标签: vb.net visual-studio-2010 console

我目前使用下图中所示的设置console application。但是现在我想用console打开多个表单,所以我想知道我是否可以以某种方式打开多个表单或在console

中打开Windows Forms Application

Here is the Project's settings

4 个答案:

答案 0 :(得分:8)

  

@tinstaafl你可以分享这个额外的节目或链接到   解。感谢

以下是几个链接:

Console and WinForm together for easy debugging

Console Enhancements

这是第一个转换。您需要一个复选框名称为“CheckBox1”的表单:

Imports System.Runtime.InteropServices

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    End Sub

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked Then
            Win32.AllocConsole()
            Console.WriteLine("Done!")
        Else
            Win32.FreeConsole()
        End If
    End Sub
End Class
Public Class Win32
    <DllImport("kernel32.dll")> Public Shared Function AllocConsole() As Boolean

    End Function
    <DllImport("kernel32.dll")> Public Shared Function FreeConsole() As Boolean

    End Function

End Class

每次单击您显示的复选框或隐藏控制台。您可以像任何控制台应用程序一样写入和读取。

答案 1 :(得分:1)

表单和控制台应用程序非常不同。因此,一般来说,进程要么是表单应用程序,要么是控制台应用程序。表单应用程序使用消息泵实现,控制台应用程序是命令行驱动器。可以在一定程度上在控制台中运行表单,反之亦然,但通常不推荐。如果你真的需要两者,我强烈建议你使用2个过程。

如果你能详细说明你的用例,我们可能会更好地帮助你。

答案 2 :(得分:1)

所以这很酷。在设计器中,只需使用Toolbox常用控件添加一个复选框。

然后双击新的“CheckBox1”,这将自动插入此子例程:

Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

End Sub

然后您需要做的就是添加以下代码:

    If CheckBox1.Checked Then
        Win32.AllocConsole()
        Console.WriteLine("Done!")
    Else
        Win32.FreeConsole()
    End If

当您运行Windows窗体程序并选中该框时,它将自动打开窗口并保持打开状态,直到您取消选中该框。

将此课程添加到您的课程底部:

Public Class Win32 

    <DllImport("kernel32.dll")> Public Shared Function AllocConsole() As Boolean

    End Function
    <DllImport("kernel32.dll")> Public Shared Function FreeConsole() As Boolean

    End Function

End Class

请务必在顶部添加Imports语句

Imports System.Runtime.InteropServices

答案 3 :(得分:1)

如果你想打开一个控制台窗口进行交互,当你关闭控制台时,该操作不会终止你的windows程序,那么你可以添加这两行代码:

将myProcess Dim As Process

myProcess = Process.Start(“cmd.exe”)