首页 > 解决方案 > 使用 winform dll 运行控制台应用程序(.net CORE)时控制台未显示(仅显示表单)

问题描述

编辑 :

我在我的 .csproj 中添加了以下内容

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <UseWindowsForms>true</UseWindowsForms>
    </PropertyGroup>

</Project>

现在可以了!

但是只有表格出现了?控制台与 Form 一起显示的任何解决方法?



我之前关于该主题的问题不清楚。因此,我正在尝试重新构建它。

我基本上有一个编写为 Console app (.net Core) 的库,我想发布它。在发布之前,我想创建一个表单,以便任何使用该库的用户都能看到该表单(要求他的比赛发送用户数据)。

/****************** 问题 ****************************** /

现在,为了创建表单,我为 System.Windows.Forms 添加了程序集,并在 main 中编写了基本代码:

在此处输入图像描述

但是在运行它时,没有显示表单的预览...只是控制台窗口

如果我在 .NET FRAMEWORK 的控制台应用程序上执行相同操作 -> 添加用于表单和设计的 dll,然后在 main 中编写相同的代码,我将获得 Form 的预览。

那么为什么在 .NET CORE 控制台应用程序的情况下不显示呢?

此外,图片中的 program.cs 文件似乎通过图标更改为表单版本。但点击它会给我错误:

在此处输入图像描述

那么如何在 .NET CORE 控制台应用程序中添加弹出窗口或表单?

标签: winforms.net-coredllvisual-studio-2019

解决方案


您可以尝试以下步骤将控制台与表单一起显示。

首先,请在您的visual studio 2019中添加一个名为Widows Forms Class Library的项目。(请选择.net core 3.0)

在此处输入图像描述

其次,请向图书馆添加表格。

public partial class TestForm : Form
    {
        public TestForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello, world");
        }
    }

第三,我们可以将库添加到 .net core 3.0 控制台应用程序中。

最后,我们可以使用以下代码在控制台应用程序中显示表单和控制台。

static void Main(string[] args)
        {
            Console.WriteLine("hello,world");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new TestForm());
            Console.ReadKey();
        }

结果:

在此处输入图像描述


推荐阅读