.NET Core 3.x + VB에서도 WinForms를 원합니다!
11276 단어 VisualBasic.NETCoreWindowsForms
소개
이것은 Visual Basic Advent Calendar 2019의 15 일째 기사입니다.
※.NET Core 3.x 라는 타이틀입니다만, .NET Core 3.1 을 사용하고 있습니다.
【2019/12/21 추가】
Visual Studio의 미리 보기 버전 Visual Studio 16.5 Preview 1에서 WinForms(.NET Core)를 디자이너에서 미리 볼 수 있습니다.
Updates to .NET Core Windows Forms designer in Visual Studio 16.5 Preview 1
템플릿에 VB가 없음
@t 후쿠모리의 "VB.NET의 .NET Core에서 WinForms, WPF 지원은 어떻게됩니까?"기사에서와 같이 템플릿에 VB가 없습니다.
아래 사이트에 따르면 VB 지원은 불행히도 .NET 5
가 된 것 같습니다. .NET 3.1
그래도 안돼.
@t 후쿠모리의 "VB.NET의 .NET Core에서 WinForms, WPF 지원은 어떻게됩니까?"기사에서와 같이 템플릿에 VB가 없습니다.
아래 사이트에 따르면 VB 지원은 불행히도
.NET 5
가 된 것 같습니다. .NET 3.1
그래도 안돼.기존 프로젝트 템플릿이라면 VB는 지원하지 않지만
.csproj
와 같은 형태로 .vbproj
파일을 다시 쓰면 VB에서도 Windows Forms 응용 프로그램을 만들 수 있습니다..NET Core 3.0 + F#에서도 WinForms를 원합니다!
환경
프로젝트 파일
VB에서도 해 보았습니다. 템플릿에 대해서는 아직 이해가 부족한지 조금 해 보았습니다만 쓸모 없었습니다.
VBWinFormApp.vbproj<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<StartupObject>VBWinFormApp.Form1</StartupObject>
</PropertyGroup>
</Project>
특별한 점은 특별히 없을 수도 있지만 Sdk
를 "Microsoft.NET.Sdk.WindowsDesktop"
로, <OutputType>をWinExe
로, <UseWindowsForms>
를 true
로 설정하는 것입니까?
VBWinFormApp.vbproj.user<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<ItemGroup>
<Compile Update="Form1.vb">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
</Project>
시작 개체를 Sub Main
에서 Form1
로 설정합니다.
출처
Form1.vbPublic Class Form1
End Class
Form1.Designer.vb<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows フォーム デザイナーで必要です。
Private components As System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナーで必要です。
'Windows フォーム デザイナーを使用して変更できます。
'コード エディターを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Text = "Form1"
End Sub
End Class
결과
Windows Forms 디자이너는 표시되지 않았지만 빌드하면 양식이 나왔습니다.
C#에서도 Windows Forms 디자이너가 표시되지 않았으므로 .NET Core Windows Forms Designer
별도 설치가 필요할 수 있습니다. 나중에 확인해 둡니다.
2019/12/21 추가
Visual Studio 16.5 Preview 1에서 선택적으로 미리 보기 기능을 사용하도록 설정해야 하지만 Windows Forms 디자이너가 표시됩니다.
여러분 기다리세요! WinForms가 디자이너에서 포토 페타 가능하게! !
C#에서 포토 페타를 할 수 있는지 확인한 후 VB에서도 포토 페타를 할 수 있음을 확인했습니다.
유감스럽게도, 버튼을 배치해 클릭 이벤트의 제휴인 Handles
구가 자동으로 기술되게 되어 있지 않았습니다. 여기는 수동으로 작성해야합니다.
추가하면 이벤트 처리가 호출되고 메시지 상자가 표시됩니다.
버튼 이벤트Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show("Hello! .NET Core 3.0")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
End Sub
End Class
마지막으로
Microsoft 담당자의 발언에 따르면
Microsoft는 애플리케이션 이벤트, 애플리케이션 모델, 싱글 인스턴스 애플리케이션 등의 VB 기능을 완벽하게 만든 다음 템플릿을 추가하고 싶다는 의향이 있다.
개인 프로젝트라면 무리하게도 프로젝트를 작성하는 것으로 VB를 사용할 수 있습니다만, 일로서는 Microsoft가 공식적으로 작성해 주지 않는 것에는 현재는 사용할 수 없네요.
Reference
이 문제에 관하여(.NET Core 3.x + VB에서도 WinForms를 원합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yaju/items/a52087c84d27d426fe01
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<StartupObject>VBWinFormApp.Form1</StartupObject>
</PropertyGroup>
</Project>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
<ItemGroup>
<Compile Update="Form1.vb">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
</Project>
Form1.vb
Public Class Form1
End Class
Form1.Designer.vb
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form
'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows フォーム デザイナーで必要です。
Private components As System.ComponentModel.IContainer
'メモ: 以下のプロシージャは Windows フォーム デザイナーで必要です。
'Windows フォーム デザイナーを使用して変更できます。
'コード エディターを使って変更しないでください。
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Text = "Form1"
End Sub
End Class
결과
Windows Forms 디자이너는 표시되지 않았지만 빌드하면 양식이 나왔습니다.
C#에서도 Windows Forms 디자이너가 표시되지 않았으므로 .NET Core Windows Forms Designer
별도 설치가 필요할 수 있습니다. 나중에 확인해 둡니다.
2019/12/21 추가
Visual Studio 16.5 Preview 1에서 선택적으로 미리 보기 기능을 사용하도록 설정해야 하지만 Windows Forms 디자이너가 표시됩니다.
여러분 기다리세요! WinForms가 디자이너에서 포토 페타 가능하게! !
C#에서 포토 페타를 할 수 있는지 확인한 후 VB에서도 포토 페타를 할 수 있음을 확인했습니다.
유감스럽게도, 버튼을 배치해 클릭 이벤트의 제휴인 Handles
구가 자동으로 기술되게 되어 있지 않았습니다. 여기는 수동으로 작성해야합니다.
추가하면 이벤트 처리가 호출되고 메시지 상자가 표시됩니다.
버튼 이벤트Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show("Hello! .NET Core 3.0")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
End Sub
End Class
마지막으로
Microsoft 담당자의 발언에 따르면
Microsoft는 애플리케이션 이벤트, 애플리케이션 모델, 싱글 인스턴스 애플리케이션 등의 VB 기능을 완벽하게 만든 다음 템플릿을 추가하고 싶다는 의향이 있다.
개인 프로젝트라면 무리하게도 프로젝트를 작성하는 것으로 VB를 사용할 수 있습니다만, 일로서는 Microsoft가 공식적으로 작성해 주지 않는 것에는 현재는 사용할 수 없네요.
Reference
이 문제에 관하여(.NET Core 3.x + VB에서도 WinForms를 원합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yaju/items/a52087c84d27d426fe01
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show("Hello! .NET Core 3.0")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
End Sub
End Class
Microsoft 담당자의 발언에 따르면
Microsoft는 애플리케이션 이벤트, 애플리케이션 모델, 싱글 인스턴스 애플리케이션 등의 VB 기능을 완벽하게 만든 다음 템플릿을 추가하고 싶다는 의향이 있다.
개인 프로젝트라면 무리하게도 프로젝트를 작성하는 것으로 VB를 사용할 수 있습니다만, 일로서는 Microsoft가 공식적으로 작성해 주지 않는 것에는 현재는 사용할 수 없네요.
Reference
이 문제에 관하여(.NET Core 3.x + VB에서도 WinForms를 원합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yaju/items/a52087c84d27d426fe01텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)