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 была общедоступной, а не частной.

Другие вопросы по тегам