Visual Studio-C#のユーザーコントロールとWindowsフォームの違いは何ですか?
非常に簡単に言えば:
ユーザーコントロールは、カスタムで再利用可能なコンポーネントを作成する方法です。ユーザーコントロールには他のコントロールを含めることができますが、フォームでホストする必要があります。
Windowsフォームは、ユーザーコントロールを含むコントロールのコンテナーです。ユーザーコントロールとして多くの同様の属性が含まれていますが、主な目的はホストコントロールです。
これらには共通してlotがあり、どちらもContainerControlから派生しています。ただし、UserControlは子ウィンドウとして設計されており、コンテナに配置する必要があります。フォームは、親のない最上位ウィンドウになるように設計されました。
TopLevelプロパティをfalseに設定することにより、実際にフォームを子ウィンドウに変えることができます。
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
var child = new Form2();
child.TopLevel = false;
child.Location = new Point(10, 5);
child.Size = new Size(100, 100);
child.BackColor = Color.Yellow;
child.FormBorderStyle = FormBorderStyle.None;
child.Visible = true;
this.Controls.Add(child);
}
}
Windowsフォームは、ユーザーコントロールのコンテナーです。
最大の違いは、form.showが異なるウィンドウを表示するのに対し、ユーザーコントロールには親なしでポップアップするような機能がないことです。残りは、Scrollablecontrolから派生したbeindのような両方のコントロールで同じです。