#c# #winforms #mdichild
#c# #winforms #mdichild
Вопрос:
Мои коды для изменения MDIChild в классе MdiParent
public void SetupMdi(Form form)
{
clearMdi();
activeMdiForms.Add(form);
form.MdiParent = this;
form.Show();
form.Location = new Point(0, 0);
foreach(Form forms in activeMdiForms)
{
MessageBox.Show(forms.ToString());
}
return;
}
public void clearMdi()
{
foreach(Form form in activeMdiForms)
{
form.Dispose();
}
activeMdiForms.Clear();
return;
}
Это отлично работает в родительском классе
private void Menu_Load(object sender, EventArgs e)
{
VersionChecker ver = new VersionChecker();
versionLbl.Text = "Depo Stok Programı Version " earlySettings.version;
SetupMdi(new Login());
GCTimer.Start();
}
Но я вызвал метод SetupMdi из дочерней формы, он работает, но дочерняя форма не отображается, но она использует оперативную память
public partial class Login : Form
{
public async void login()
{
earlySettings.usrName = obj.UserName;
MainMenu form = new MainMenu();
new Menu().SetupMdi(new MainMenuMdi());
this.Dispose();
}
}
Я попробовал ApiClass, он не работает как дочерний класс
Ответ №1:
Но я вызвал метод SetupMdi из дочерней формы, он работает, но дочерняя форма не отображается, но она использует оперативную память
Предполагая, что ваш код находится в реальном MDIChild, тогда вы можете привести свойство MdiParent к вашему родительскому типу (я полагаю, Menu
?), а затем вызвать SetupMdi()
метод:
// ... assuming we are in an MdiChild ...
((Menu)this.MdiParent).SetupMdi(new MainMenuMdi());