工具条 WinForms .Net Core 的问题

Posted

技术标签:

【中文标题】工具条 WinForms .Net Core 的问题【英文标题】:Problem with Toolstrip WinForms .Net Core 【发布时间】:2021-05-21 10:28:27 【问题描述】:

我正在.Net Core 中制作一个 Winforms 应用程序来学习一些基本的东西。这是一个简单的应用程序,我将文本框中的一些文本写入文件(基本上就像记事本一样)。

现在我想添加一个带有工具条按钮的工具条来创建一个新文件和一个工具条按钮来将文本保存到文件中,等等。

所以我从工具箱中添加工具条并将其拖到我的 form1.cs[design] 中。然后我右键单击工具条并单击“插入标准项目”。按钮正在添加到工具条中。

现在我的问题是我想为按钮添加一个点击事件,但我不能单独双击工具条按钮。所以我必须进入designer.cs来添加点击事件。例如:

this.newToolStripButton.Click += new System.EventHandler(this.btnNewFile_Click);

我刚刚在 .Net Framework 中使用 WinForms 应用程序进行了尝试,我可以在其中双击工具条按钮来添加事件处理程序。

我必须在 .Net Core 中采用不同的方法吗?这在 .Net Core 中还没有完全支持,我应该只使用 .Net Framework for Winforms 吗?我读到 .Net Core 并不支持 .Net Framework 中 Winforms 的所有功能,但 Toolstrip 应该可以工作。

提前致谢

【问题讨论】:

到目前为止,我还没有将 WinForms 与 .NET Core 一起使用,但根据 this blog post(今年 5 月发布),尚不支持 ToolStripContainer 控件。 好的,谢谢 【参考方案1】:

从 Visual Studio 2019 16.8.0 Preview 6.0(以及 VS2019 16.7.6)开始,在设计器中双击 ToolStripButton 将启动 ToolStrip_ItemClicked 事件的代码。在这种情况下,您可以检查 ToolStripItemClickedEventArgs.ClickedItem 以查看按下的内容。

private void toolStrip2_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        
            ToolStripButton tsb = (ToolStripButton)e.ClickedItem;
        

如果您想获得单个 ToolStripButton 的 Click 事件,可以在“属性”窗口中选择它,单击“事件”按钮,然后将其插入。

【讨论】:

以上是关于工具条 WinForms .Net Core 的问题的主要内容,如果未能解决你的问题,请参考以下文章

适用于 .Net Core 3.1 的 Visual Studio 2019 中的 WinForms 设计器窗口

温故知新,.Net Core遇见WinForms客户端窗体框架,在DotNet Core大一统基础上老树发芽...

NET Core 3.1 WinForms Designer 与 WPF 用户控件不兼容

.NET Core 3.0新特性

迁移到 .Net Core 5 - 生成的 .config 文件的名称已更改

在 Windows 窗体应用程序中托管 ASP.NET Core API