• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > 在Winform动态启动、控制台命令行的方法

在Winform动态启动、控制台命令行的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了winform动态添加控件,winform 动态创建控件,winform动态添加按钮,winform 动态生成控件,winform添加购物车等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

需求
winForm 程序输出类型为 windows 程序(不是命令行程序)
在运行时想输入一些信息编译开发调试,如何实现这一功能

解答:

AllocConsole、FreeConsole 这两个 API 可以在任何时候调用和关闭 命令行。

代码演示:
API 部分

namespace WindowsFormsApplication1
{
    public partial class NativeMethods
    {
        /// <summary>
        /// 启动控制台
        /// </summary>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        public static extern bool AllocConsole();
        /// <summary>
        /// 释放控制台
        /// </summary>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        public static extern bool FreeConsole();
    }
}
</div>
启动参数的实现

namespace WindowsFormsApplication1
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            try
            {
                if (args.Length > 0 && args[0].ToLower() == "-c")
                {//通过命令行 xxxx.exe -c 参数启动,Console

                    //注意:不用 Main(string[] args)、System.Environment.GetCommandLineArgs();  也可以取得命令行参数在任何地方

                    //启动
                    NativeMethods.AllocConsole();
                    Console.WriteLine("控制台以启动");
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
            finally
            {
                //关闭 (如果在这个位置其实写不写都行了)
                NativeMethods.FreeConsole();
            }
        }
    }
}
</div>
程序实现

        private void btnOpenConsole_Click(object sender, EventArgs e)
        {
            //开启控制台
            NativeMethods.AllocConsole();
        }

        private void btnCloseConsole_Click(object sender, EventArgs e)
        {
            //关闭控制台
            NativeMethods.FreeConsole();
        }

        private void btnOut_Click(object sender, EventArgs e)
        {
            //模拟输出
            Console.WriteLine(textBox1.Text);
        }
    }
}
</div>
代码下载:(VS2008 如果其他版本VS请自行修改)
http://xiazai.weikejianghu.com/201302/other/WinformShellConsole_VS08.rar

最后:

其实代码很简单,不过很适合在运行时输出一些临时调试信息
用GUI画图的操作一般下断点很容易影响Print 事件的情况
,有时候在客户那里程序问题在上打开控制台输出一些调试信息看着比较方便;
而且控制太没有线程限制的,所以使用起来要比单独的日志窗口方便、而且容易复制内容,还支持 paus 键;

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 在Winform动态启动、控制台命令行的方法

相关文章

  • 2017-05-28在winform下实现左右布局多窗口界面的方法之续篇
  • 2017-05-28C#中事件处理的个人体会
  • 2017-05-28C#基础概念二十五问 21-25
  • 2017-05-28C#数据结构之单链表(LinkList)实例详解
  • 2017-05-28C#编程实现对象与JSON串互相转换实例分析
  • 2017-05-28c#实现服务器性能监控并发送邮件保存日志
  • 2017-05-28C# Guid.NewGuid获得随机数
  • 2017-05-28C# WebClient类用法实例
  • 2017-05-28C#分屏控件用法实例
  • 2017-05-28c#下注册表操作的一个小细节

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# 无边框窗体边框阴影效果的简单实现
    • C#窗体布局方式详解
    • C#操作本地文件及保存文件到数据库的基本方法总结
    • C#解决SQlite并发异常问题的方法(使用读写锁)
    • C# Resources资源详解
    • c#数据绑定之向查询中添加参数(.Net连接外部数据库)
    • Windows服务编写(Windows Service,system权限)程序显示界面与用户交互(xp,win7通用)
    • C#中datatable去重的方法
    • C#中如何利用正则表达式判断字符
    • C#控制IE进程关闭和缓存清理的实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有