-1
klicken Ich habe ein Hauptprojekt, das ein Panel und ein Menü hat. Wenn der Benutzer auf die Schaltfläche klickt, möchte ich ein Benutzersteuerelement laden.Instance UserControl in Windows Forms aus einer anderen Klassenbibliothek, wenn Sie auf
Ich habe die Klassenbibliothek für UI erstellt. Aber wenn ich auf die Schaltfläche klicke, wird das Benutzersteuerelement im Hauptprojekt nicht geladen. Was ist das Problem?
Hauptprojekt:
private void BtnMainPage_Click(object sender, EventArgs e)
{
if (!PanelHome.Controls.Contains(Home.Instance))
{
PanelHome.Controls.Add(Home.Instance);
Home.Instance.Dock = DockStyle.Fill;
Home.Instance.BringToFront();
}
else
{
Home.Instance.BringToFront();
}
}
UI:
public partial class Home : UserControl
{
#region Variable
public static Home Instance
{
get
{
return Singleton<Home>.GetInstance();
}
}
#endregion
public Home()
{
InitializeComponent();
MessageBox.Show("Load");
}
}
Singleton:
public sealed class Singleton<T> where T : class, new()
{
private volatile static T Instance;
private static object _lock = new object();
public static T GetInstance()
{
if (Instance == null)
{
lock (_lock)
{
if (Instance == null)
{
Instance = new T();
}
}
}
return Instance;
}
}
warum es ein Singleton sein? Das ist seltsam für eine Benutzerkontrolle. – Ctznkane525
Sie [diese Frage wurde bereits gestellt] (https://stackoverflow.com/questions/48040931/not-load-user-controle-in-homepanel-from-other-project#comment83054074_48040931). Bitte missbrauchen Sie das System nicht mit mehreren Benutzerkonten. Und missbrauche unsere Freizeit nicht, wir haben hier eine strenge ["be nice" Politik] (https://stackoverflow.com/help/be-nice). –