Где находится "платформа приложения" Winforms на C#, которая существует в VB.NET?
Раньше я разрабатывал проекты VB.NET Winforms, которые используют настройки "Windows Application Framework", которые находятся на вкладке "Приложение" в свойствах проекта:
Одна особенно полезная особенность этого - возможность создавать приложение с одним экземпляром одним щелчком флажка. Это очень хорошо работает. Вот свойства проекта C# для проекта Winforms:
О фреймворке приложения ничего нет ни на вкладке "Приложение", ни где-либо еще. Все ссылки, которые я нашел на приложения с одним экземпляром, говорят об использовании специального решения с мьютексом. Я не могу найти никакой информации о том, почему в проектах C# нет эквивалентной платформы приложений. Может кто-нибудь пролить некоторый свет на это?
1 ответ
Эти свойства доступны исключительно в типах проектов VB.Net. Если вы хотите использовать эти свойства VB.Net в проекте C#, вам необходимо добавить ссылку наMicrosoft.VisualBasic
сборки и создайте собственный класс приложения, унаследованный от Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase
для доступа к защищенным элементам, отображаемым в свойствах проекта, и запуска приложения формы 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#.