VB.NET中存在的C#中的Winforms“应用程序框架”在哪里? - c#

过去,我已经开发了使用“ Windows应用程序框架”设置的VB.NET Winforms项目,这些设置位于项目属性的“应用程序”选项卡上:

VB.NET中存在的C#中的Winforms“应用程序框架”在哪里? - c#

此功能的一个特别有用的功能是能够通过单击复选框来制作单实例应用程序。这很好。这是Winforms项目的C#项目属性:

VB.NET中存在的C#中的Winforms“应用程序框架”在哪里? - c#

无论是在“应用程序”选项卡上还是其他地方,应用程序框架都没有。我发现的所有对“单个实例”应用程序的引用都涉及使用带有互斥量的自定义解决方案。我找不到有关为什么C#项目中没有等效的应用程序框架的任何信息。谁能对此有所启发?

参考方案

这些属性仅在VB.Net项目类型中可用。如果要在C#项目中利用这些VB.Net属性,则需要添加对Microsoft.VisualBasic程序集的引用,并创建继承自Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase的自定义App类,以访问出现在项目属性中的受保护成员并运行Windows通过自定义应用程序类而不是C#应用程序类方法创建表单应用程序。

static class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        var app = new MyApp(new Form1());
        app.Run(args);
    }
}

internal class MyApp : Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
{
    public MyApp(Form mainForm)
    {
        this.EnableVisualStyles = true;
        this.SaveMySettingsOnExit = true;
        this.IsSingleInstance = true;
        this.MainForm = mainForm;
    }
}

Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase为Winform应用程序提供了预定义的功能,这些功能只能通过VB.Net使用。 Microsoft.VisualBasic程序集中有许多预定义的类库,这些库在C#中不可用。

VB.NET C#语法的泛型 - c#

您能否告诉我此VB.NET代码的C#等效项:Public Partial Class Index Inherits System.Web.Mvc.Viewpage(Of List(Of Task)) End Class 我不确定在哪里/如何在C#中添加它:public partial class DirList : System.Web.Mvc.ViewPa…

根据另一个列表确定列表的索引,反之亦然,欢迎使用C#/ VB.NET或JavaScript解决方案 - c#

假设您有列表1(ilist1)和列表2(ilist2),两个列表都有3个项目。在索引为0的项目1中,其文本为“-选择-”在索引1 item2中,其文本为“是”在索引2 item3中,其文本为“ No”这两个列表具有相同的项目。我想知道是否可以使用SelectedIndexChanged或类似的东西使列表一的选择为“是”,使列表二的选择为“否”,反之亦然。例如…

如何在实际发送到服务器之前显示正在上传的图像的预览 - c#

我在aspx页面中有一个FileUpload控件,我想显示回发之前选择的图像,以便用户确认要上传的图像。 c#参考方案 您可以使用此AJAX控件工具包控件进行图像确认。http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx

使用String.Empty的好处 - c#

This question already has answers here: Closed 9 years ago. Possible Duplicate: In C#, should I use string.Empty or String.Empty or “” ?我只是不了解在“”上使用String.Empty的好处。除了强烈键入更长的时间。所以,请…

如何将Excel工作表导出到新工作簿中 - c#

我有一堆包含多个工作表的Excel工作簿。我想遍历每个工作簿并将每个工作表导出到它自己的新工作簿中。我希望每个新工作簿中都有一个工作表。这是到目前为止我得到的: Sub ExportWorksheet(ByVal worksheet As Excel.Worksheet, ByVal filePath As String) Dim xlApp As Exce…