[英]C# winforms change usercontrol in panel as method
我試圖制作一種單擊按鈕時更改用戶控件的方法。
用戶控件
namespace LogAnalyzer
{
public partial class UserSettings : UserControl
{
private static UserSettings _instance;
public static UserSettings Instance
{
get
{
if (_instance == null)
_instance = new UserSettings();
return _instance;
}
}
public UserSettings()
{
InitializeComponent();
}
private void btnUnpackPath_Click(object sender, EventArgs e)
{
flowLayoutPanel1.Hide();
}
}
}
我的表格
namespace LogAnalyzer
{
public partial class LogAnalyzerMain : Form
{
public LogAnalyzerMain()
{
InitializeComponent();
}
private void ChangeInstance(Control tab) {
if (!panelDisplay.Controls.Contains(tab))
{
panelDisplay.Controls.Add(tab);
tab.Dock = DockStyle.Fill;
}
tab.BringToFront();
}
private void btnSettings_Click(object sender, EventArgs e)
{
ChangeInstance(UserSettings);
}
}
}
它以我的形式在此行中給我一個錯誤(“ UserSettings”是一種類型,在給定的上下文中無效)
ChangeInstance(UserSettings);
您正在傳遞類本身,但是該方法接受它的一個實例,因為您具有單例屬性,因此可以使用該屬性:
ChangeInstance(UserSettings.Instance);
否則,您必須將實例存儲在某個地方,例如在LogAnalyzerMain
為字段,或者如果它是表單上的控件,則可以使用this.Controls.OfType<UserSettings>().First()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.