別のフォームに埋め込みたい.NET 3.5ウィンドウフォームがあります。そのフォームをコントロールにする簡単な方法はありますか?.NET:WindowsフォームをWindowsコントロールに変換する方法
おかげ
別のフォームに埋め込みたい.NET 3.5ウィンドウフォームがあります。そのフォームをコントロールにする簡単な方法はありますか?.NET:WindowsフォームをWindowsコントロールに変換する方法
おかげ
変更後、任意のコンパイルエラーを修正し、ユーザーコントロールの代わりのフォームから継承する形。
コントロールでフォームを埋め込む方法もあります。ここでVBのコードです:
Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form)
If ctl IsNot Nothing AndAlso frm IsNot Nothing Then
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
frm.Visible = True
ctl.Controls.Add(frm)
End If
End Sub
ので、私はSOに別のポストからこのコードを取得しましたと思うが、私はどこ覚えていないことこのコードスニペットであればごめんなさい!
これを行うべきではありませんが、今後はMEFをご覧ください。その中で(とりわけ)複合アプリケーションを構築するためのフレームワークは、あなたが達成しようとしているものかもしれません。
@Neil Barnwellの溶液を添加して使用しました。 私は手動で.vbprogファイルを編集し、「ユーザーコントロール」に、フォームの「サブタイプ」に変更:
<SubType>UserControl</SubType>
これは、プロジェクトエクスプローラのアイコンは、ユーザーコントロールではなく、フォームとして表示することができます。
この同じ問題を自分自身で解決しながら、この回答が見つかりました。すごく簡単ですね。 –
VB.NETでどうすればいいですか?このフォームは単に 'Public Class TimeSheetGrid'として宣言され、明示的な' Inherits'はありません。 – ProfK
Visual Studio 2012(少なくとも)、または私が試した比較的シンプルなフォームでは、これを行うだけで使用可能なコードが作成されますが、VSデザイナーでコントロールを開くことはできません。エラーはありませんが、デザイナーを開くと、ファイルダイアログエレメント/ etcの場合と同様に、すべてのコントロール要素のリストが表示されます。コントロールレイアウトは表示されません。誰かがそれを修正する方法を知っているなら、教えてください! –