C#控制台窗口的显示与隐藏

1. 定义一个Consolse帮助类,如下:

/// <summary>
    /// 控制台帮助类
    /// </summary>
    public static class ConsoleHelper
    {
        /// <summary>
        /// 获取窗口句柄
        /// </summary>
        /// <param name="lpClassName"></param>
        /// <param name="lpWindowName"></param>
        /// <returns></returns>
        [DllImport("user32.dll", SetLastError = true)]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        /// <summary>
        /// 设置窗体的显示与隐藏
        /// </summary>
        /// <param name="hWnd"></param>
        /// <param name="nCmdShow"></param>
        /// <returns></returns>
        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

        /// <summary>
        /// 隐藏控制台
        /// </summary>
        /// <param name="ConsoleTitle">控制台标题(可为空,为空则取默认值)</param>
        public static void hideConsole(string ConsoleTitle = "")
        {
            ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;
            IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);
            if (hWnd != IntPtr.Zero)
            {
                ShowWindow(hWnd, 0);
            }
        }

        /// <summary>
        /// 显示控制台
        /// </summary>
        /// <param name="ConsoleTitle">控制台标题(可为空,为空则去默认值)</param>
        public static void showConsole(string ConsoleTitle = "")
        {
            ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;
            IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);
            if (hWnd != IntPtr.Zero)
            {
                ShowWindow(hWnd, 1);
            }
        }
    }

2.调用

ConsoleHelper.hideConsole();

 

作者:leixf2016
来源:优快云
原文:https://blog.youkuaiyun.com/lxfmq0/article/details/8098782 

### 创建无控制台窗口C#应用程序 为了创建一个不显示控制台窗口的应用程序,在定义项目时需指定正确的输出类型。对于不需要控制台的应用场景,应将项目的输出类型设置为“Windows 应用程序”,而不是默认的“控制台应用程序”。 在Visual Studio中实现这一点的具体方法如下: #### 设置项目属性 当使用Visual Studio创建新的C#项目时,可以通过修改项目属性来隐藏控制台窗口。选择“创建新项目”之后,在配置新项目的过程中,确保选择了适合于GUI应用的模板而非控制台应用模板。 如果已经有一个现有的控制台应用程序想要去除其控制台窗口,则可以在解决方案资源管理器内右键单击该项目并选择“属性”。接着导航至“Application”标签页,并将“Output type”的值改为`Windows Application`[^1]。 ```csharp using System; using System.Windows.Forms; namespace WinFormsAppNoConsole { static class Program { [STAThread] static void Main() { Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } } public partial class MainForm : Form { public MainForm() { InitializeComponent(); this.Text = "这是一个没有控制台窗口的应用"; } } } ``` 此代码片段展示了如何构建一个简单的Windows Forms应用程序而不展示任何关联的控制台窗口。注意这里引入了`System.Windows.Forms`命名空间以便能够利用WinForm组件[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值