C# изменить уже открытую форму из другой формы?
C# окна формы:
Можно ли создать кнопку, которая изменяет текст ToolStripMenuItem в другой форме, которая уже открыта?
Что-то вроде:
private void button1_Click_1(object sender, EventArgs e)
{
Form1.ToolStripMenuItem.Text = "Some_text";
}
3 ответа
Да, если меню, созданное конструктором форм, элемент управления будет закрытым, поэтому вы можете создать открытый метод или свойство в форме, содержащей меню, чтобы изменить текст и вызвать его из другой формы.
public void ChangeText(string Text){
this.ToolStripMenuItem.Text = Text;
}
а потом позвонить снаружи
Просто была похожая проблема, вот мой код:
public void UpdateStatusBarUp(string status)
{
if (this.InvokeRequired)
{
this.BeginInvoke((MethodInvoker)delegate
{
UpdateStatusBarUp(status);
});
}
else
{
toolStripStatusLabelUp.Text = status;
statusStripUp.Refresh();
}
}
пожалуйста, имейте в виду, что Refresh() необходим для того, чтобы изменения отображались в графическом интерфейсе.
Кроме того, измените код конструктора Form1 так, чтобы закрытая переменная для ToolStripMenuItem была общедоступной, а не частной.