Ich versuche, auf ein Objekt TextBox
von einer Klasse zuzugreifen. Ich habe versucht, Konstruktoren zu verwenden, aber nichts ist passiert. Es funktionierte, bis ich Panels hinzugefügt und weitere Formulare hinzugefügt habe.C# Kann nicht auf Objekt von einer Klasse zugreifen
Mein Hauptformular, das meine Form lädt:
public partial class MenuForm : Form
{
public MenuForm()
{
InitializeComponent();
}
ConfigForm Config = new ConfigForm();
GeneralForm General = new GeneralForm();
private void Menu_Load(object sender, EventArgs e)
{
//Load of Config Form
Config.MdiParent = this.MdiParent;
Config.Show();
//Load of General Form
General.Show();
General.TopLevel = false;
Config.Controls["panel1"].Controls.Add(General);
}
}
Hier ist meine Config-Form:
public partial class ConfigForm : Form
{
private ConfigFormHelper confighelper = null;
private GeneralFormHelper generalhelper = new GeneralFormHelper();
public ConfigForm()
{
InitializeComponent();
}
private void comboTemplate_SelectedIndexChanged(object sender, EventArgs e)
{
generalhelper.LoadTemplate();
}
}
Hier ist meine allgemeine Hilfsklasse:
class GeneralFormHelper
{
GeneralForm generalform2 = new GeneralForm();
public void LoadConfig()
{
this.generalform2.txtDSN1.Text = "test";
}
}
Es gibt keine Fehler, aber txtDSN1
erhält nicht den "Test" -Text.
txtDSN1
ist auf dem public
Modifikator.
Sie setzen das Textfeld einer anderen Instanz, die sich von der gerade angezeigten Instanz unterscheidet. Sehen Sie sich diese Zeile in MainForm an: 'GeneralForm General = new GeneralForm();' die Sie 'Config.Show();' gezeigt haben und die andere in GeneralFormHelper: 'GeneralForm generalform2 = new GeneralForm();' –
ist das korrekt? 'public GeneralForm myForm; public GeneralFormHelper (GeneralForm-Formular) { this.myForm = Formular; } ' ist das korrekt? – FatalError
Überarbeiten Sie Ihr Design. Wie @RezaAghaei erwähnt, haben Sie mehrere Instanzen für 'GeneralForm' und auch' GeneralFormHelper.LoadConfig() 'scheint nicht in dem von Ihnen bereitgestellten Code verwendet zu werden. –