【问题标题】:Windows Terminal - Windows Form to embed cmdWindows 终端 - 嵌入 cmd 的 Windows 窗体
【发布时间】:2009-06-07 15:16:18
【问题描述】:

我正在寻找一种将 cmd“Shell”嵌入表单的方法。我想构建一个基于 C# 的应用程序作为终端,比 Powershell 窗口(没有选项卡)或 cmd(什么都没有)更好。只需在后端启动这些解释器。

我猜 MS 从来没有想过这样做。有什么我可以使用的 From 元素的想法吗?

谢谢, 输入/输出

【问题讨论】:

    标签: c# winforms shell terminal


    【解决方案1】:

    这不是您正在执行的一项微不足道的任务。我知道一个项目 (Console2),它基本上轮询底层控制台窗口的屏幕缓冲区并单独显示。你肯定会在处理像 Far 之类的交互式应用程序时遇到麻烦,因为它们 (a) 依赖于获取键盘事件和 (b) 操作它们的屏幕缓冲区。如果您想要一个合适的围绕控制台窗口功能的包装器,那么两者都是令人讨厌的事情。鼠标输入也是可能的(除非启用了快速编辑模式),这可能会让您更加头疼。

    我怀疑您是否可以为此使用现成的控件。基本上,您需要显示一个单元格网格,每个单元格都有前景色和背景色。您可能可以为此使用 RichTextBox,但我猜这远非理想。

    另外,我认为 MS 的任何人都没有想到这一点。只是新功能的预算有限,而且每一个都需要指定、实施、测试、更多地测试以适应数百万应用程序的回归等等。这只是一件非常昂贵的事情(如果你不想要滥用您的客户作为测试人员,而他们不是)。

    【解决方案2】:

    扩展 Textbox 类并添加逻辑可能是最简单的方法,以便它像控制台一样运行(响应 KeyPressed/KeyUp/KeyDown 事件或类似事件)。您还可以为控制台需要响应的那些事情添加事件。例如,添加一个 CommandEntered 事件。

    基于 TextBox 的新控制台为您提供了“免费”文本框的编辑和显示功能,因此您无需重新实现。

    【讨论】:

      【解决方案3】:

      您可以使用富文本框,将背景设置为黑色,将前景设置为白色。 RTB 代替文本框来处理更大量的数据。 不过,您将不得不编写大量代码来模拟终端。

      【讨论】:

        猜你喜欢
        • 2013-10-24
        • 2022-01-18
        • 2018-10-15
        • 1970-01-01
        • 2019-02-12
        • 2017-03-14
        • 2012-10-15
        • 2010-09-26
        • 1970-01-01
        相关资源
        最近更新 更多