如何在其他类中调用一种形式的标签赋值

本文关键字:一种 赋值 标签 其他 调用 | 更新日期: 2023-09-27 18:12:10

我正在上课

MainForm.cs 其中MainFormDesigner.cs

 public System.Windows.Forms.Label diffTime;

我希望这个标签的值在其他类

中分配

Request.cs 类当我尝试用这些方法

 MainForm.diff.Text = "Diff:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

尝试在MainForm中给出静态,但无法获得在其他类中分配的标签值。

我该怎么做呢,请帮忙。

如何在其他类中调用一种形式的标签赋值

进入窗体的设计器,选择标签,在属性中选择Modifier,然后将修饰符的值更改为public

然后在另一个类中,假设你有一个MainForm的实例这样做:

//if the variable of instance of your MainForm is mainForm for example:
mainForm.diff.Text = "Diff:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

A cheating way:

public partial class MainForm : Form
{
    public static System.Windows.Forms.Label diffTime;
    public MainForm()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        diffTime = new System.Windows.Forms.Label();
        diffTime.AutoSize = true;
        diffTime.Location = new System.Drawing.Point(113, 55);
        diffTime.Name = "diffTime";
        diffTime.Size = new System.Drawing.Size(35, 13);
        diffTime.TabIndex = 0;
        diffTime.Text = "label1";
        this.Controls.Add(diffTime);
    }

则在Request.cs中可以调用MainForm.diff.Text = "Diff:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

但是我建议你遵循Reza Aghaei的答案,你需要一些变量来保存你的MainForm的实例:Request.cs:

public class Request
{
    public static MainForm mainForm = null;
    public static void setLabelText()
    {
        mainForm.diffTime.Text = "Diff:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
    }
}

假设在Program.cs中调用MainForm:

Request.mainForm = new MainForm(); //pass your instance to Request.cs
Application.Run(Request.mainForm);