繁体   English   中英

单击按钮后,以另一种形式刷新标签文本

[英]refresh label text in another form after button click C#

我在1个解决方案中有2个项目,每个项目都有1个表格。 在表格1中,我有标签和按钮,我想当我单击按钮时它将在表格1中以表格2 labeltext显示。

我的代码形式1:

WindowsFormsApplication1.Form1 layarForm1 = new WindowsFormsApplication1.Form1();
layarForm1.Show();
layarForm1.LabelText = no_antrian.Text;
//layarForm1.LabelText = this.Refresh();

form2(在其他项目中但在相同的解决方案中,我已参考表1):

public string LabelText
    {
        get
        {
            return this.ruang_1.Text;
        }
        set
        {
            this.ruang_1.Text = value;
        }
    }

我的代码第一次工作,但是当我再次单击按钮时,它将显示新表格。 单击按钮后,是否有任何方法可以刷新表格2中的标签文本。 而且我不想使用处置表单,因为在表单2中,如果我使用dispose()和show(),我将播放重新播放的视频

两个项目= 2个可执行文件,您需要使用共享内存或命名管道将数据从一个exe发送到另一个exe,或者一旦获取另一个窗口的窗口句柄并通过EnumChildWindows查找子窗口句柄,就使用winapi(例如SendMessage) 。

为什么不在同一个项目中使用两种形式?

问题是每次单击按钮时,都会创建表单的实例。 您需要检查表单是否已经打开,如果尚未创建实例,请显示该表单并更新标签。

如果表单已经打开,您要做的就是更新标签并将焦点放在表单上。

您可以使用Application.OpenForms遍历所有一种表单,并检查该表单是否在该集合中。

就像是

foreach (Form frm in WindowsFormsApplication1.OpenForms)  
{  
    if (frm.Name == "MY_FORM_NAME") then
       frm.LabelText = no_antrian.Text;
    else
    {
        WindowsFormsApplication1.Form1 layarForm1 = new       
        WindowsFormsApplication1.Form1();
        layarForm1.Show();
        layarForm1.LabelText = no_antrian.Text;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM