C#从命令行打开winform

时间:2014-08-24 16:41:09

标签: c# winforms forms command-line

我是c#的新手,这个项目只是为了学习。我试图创建一个程序,用户在命令行中输入一些信息,然后结果显示在窗体窗口中。我怎样才能做到这一点?

这是我失败的尝试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Øving1
{
    class Program
    {
       static int Length;
       static int Width;

        [STAThread]
        static void Main(string[] args)
        {
            GUI test = new GUI();

            Console.WriteLine("Dette Programet regner ut areal og omkrets av et rektangel, angi en lengde og brede(eks. 10 enter 10)");
            Length = Convert.ToInt32(Console.ReadLine());
            Width = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("AREAL: " + Area(Length, Width) + " OMKRETS: " + Circumference(Length, Width));


            test.richTextBox1.Clear();
            test.richTextBox1.AppendText("AREAL: " + Area(Length, Width) + " OMKRETS: " + Circumference(Length, Width));

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(test);


        }

        public static int Area(int Length, int Width)
        {
            return Length * Width;
        }

        public static int Circumference(int Length, int Width)
        {
            return (Length * 2) + (Width * 2);
        }

2 个答案:

答案 0 :(得分:1)

您通常无法将控制台和winforms应用程序混合在一起。这在技术上是可行的,但框架通常旨在将它们视为单独的应用程序类型:Show Console in Windows Application?

如果您的目标是在显示表单之前允许从命令行输入数据,请考虑使用命令行参数,这些参数在winforms应用程序中更容易支持:How do I pass command-line arguments to a WinForms application?

答案 1 :(得分:1)

不幸的是,我无法理解错误消息,但必须在创建窗口之前调用Application.SetCompatibleTextRenderingDefault(false);(例如,在调用表单构造函数之前)。