.NET 6におけるWindows Formsのデザイナ問題とは?
InputManPlus for Windows Forms(インプットマンプラス)では、.NET6および .NET Framework 4.8をサポートしています。しかし .NET 6に対応したWindows Formsアプリケーションを開発する場合に、一部のプロパティがVisual Studioのデザイナ上で動作せず設定することができません。特にInputManのコントロールでは専用のダイアログを開発してデザイナで使用しているため、以下のように動作しないプロパティが多く存在する状況です。
スマートタグ
各コントロール
.NET Framework 4.8
.NET 6
カスタムダイアログ
GcTextBox.Format、GcNumber.Format、GcComboBox.Format、GcComboBox.Templateなど
.NET Framework 4.8
.NET 6
コレクションプロパティ
FieldCollectionEditor全般、ValidateCollectionEditor全般、GcDateTime.SpinButton、GcRichTextBox.ToolBarItemsなど
.NET Framework 4.8
.NET 6
ドロップダウンプロパティ
.NET Framework 4.8
.NET 6
インタラクションエディター
.NET Framework 4.8
.NET 6
この問題の原因は?
InputManのデザイナが動作しない原因は、Windows Formsのデザイナでプロセスが2つに分かれたことにあります。
Visual Studioでは元々Visual Studioも設計中のアプリケーションも、devenv.exeプロセス上で動作していました。しかし .NET Coreの登場時に異なるフレームワークである .NET Frameworkと .NET Coreを同一のdevenv.exeで動作させることができず、デザイナをアウトオブプロセス(OOP)で対応することになりました。つまり .NET Frameworkでの開発時は .NET Frameworkデザイナが、.NET Coreや .NET 6での開発時はOOPデザイナが用いられることになりました。
このWindows Formsのデザイナに関する詳しい内容についてはマイクロソフトのブログで紹介されていますのでこちらをご覧ください。
InputManの取り組み
上記のブログでは以下のような記載があります。
WinForms Designer Extensibility SDK: Due to the conceptional differences between the OOP designer and the .NET Framework designer, providers for 3rd party controls for .NET will need to use a dedicated WinForms Designer SDK to develop custom Control Designers which run in the context of the OOP designer.
https://devblogs.microsoft.com/dotnet/state-of-the-windows-forms-designer-for-net-applications/
InputManなどのコントロールではこのSDK(Microsoft.WinForms.Designer.SDK)を使用してデザイナを開発する必要があります。グレープシティでは現在このSDKの解析を行い、各プロパティに対しOOPに則った対応を行っています。対応としては段階的に以下の3つのフェーズに分けて対応を進めていく予定です。
フェーズ1
フェーズ1では、スマートタグのアクションリストを表示できるようにします。
フェーズ2
フェーズ2ではカスタムエディタ(「書式の設定」やGcComboBoxの「テンプレート」など)とコレクションエディタ(「サイドボタンの編集」や「検証定義エディタ」)の表示を調整し、プロパティから呼び出しできるようにします。
フェーズ1とフェーズ2は、来週12月7日にリリースを予定しているサービスパック「InputManPlus for Windows Forms 11.0J SP1」で対応します。
フェーズ3
ドロップダウンエディタ(「日付カレンダー」や「県フィルタ」)などの表示を調整し、プロパティから呼び出しできるようにします。
フェーズ3は2023年以降にリリースのサービスパックで対応する予定です。
追記(2023.09)
現在までに対応しているフォームデザイン機能の詳細については、こちらをご覧ください。
- GrapeCity InputMan for Windows Forms 11.0J – Service Pack 1の新機能と変更点
- GrapeCity InputMan for Windows Forms 11.0J – Service Pack 2の新機能と変更点
製品の機能を手軽に体験できるデモアプリケーションやトライアル版も公開しておりますので、こちらもご確認ください。
また、ご導入前の製品に関するご相談、ご導入後の各種サービスに関するご質問など、お気軽にお問合せください。