C# 通过其他窗口中的属性更新toolStripStatusLabel1.Text

C# 通过其他窗口中的属性更新toolStripStatusLabel1.Text,c#,winforms,C#,Winforms,在我的主窗口上,我有一个statusstrip和一个公共属性来更新toolStripStatusLabel1.Text。从我的主要形式来看,这是有效的。 当我打开第二个表单时,在其上放置一个按钮,然后在Mousemove事件下设置下一个代码,什么都不会发生。当鼠标从其他窗体移到按钮上时,如何在toolStripStatusLabel1.text中显示文本 private void button_Login_MouseMove(object sender, MouseEventArgs e) {

在我的主窗口上,我有一个statusstrip和一个公共属性来更新toolStripStatusLabel1.Text。从我的主要形式来看,这是有效的。 当我打开第二个表单时,在其上放置一个按钮,然后在Mousemove事件下设置下一个代码,什么都不会发生。当鼠标从其他窗体移到按钮上时,如何在toolStripStatusLabel1.text中显示文本

private void button_Login_MouseMove(object sender, MouseEventArgs e)
{
    Form_Main Main_Window = new Form_Main();                 
    Main_Window.StatusstripText = "TEST...";
    Main_Window.Refresh();
}

您正在创建Form_Main的新实例,因此看不到它在工作。您将需要对原始表单_Main的引用,并设置其StatusstripText。您可以通过将其传递给构造函数或在第二个表单上设置属性来实现这一点

SecondForm form  new SecondForm();
form.Parent = this;
form.Show();
private void button_Login_MouseMove(object sender, MouseEventArgs e)
{
     this.Parent.StatusstripText = "TEST...";
     Main_Window.Refresh();
}
在第二个窗体上,有一个名为Parent的属性,如下所示

public Form_Main Parent { get; set; }
在创建第二个窗体时设置属性

SecondForm form  new SecondForm();
form.Parent = this;
form.Show();
private void button_Login_MouseMove(object sender, MouseEventArgs e)
{
     this.Parent.StatusstripText = "TEST...";
     Main_Window.Refresh();
}
现在,使用此属性设置第二个表单中的状态条文本

SecondForm form  new SecondForm();
form.Parent = this;
form.Show();
private void button_Login_MouseMove(object sender, MouseEventArgs e)
{
     this.Parent.StatusstripText = "TEST...";
     Main_Window.Refresh();
}

可能是重复的谢谢。这很有效。第二个窗体有一个带有渐变颜色的面板,当鼠标移动到按钮上时,该面板会闪烁。我尝试了double buffers=true,但这不起作用。如何避免闪烁?我删除了刷新。闪烁的声音停止了。