如何在其他类中调用一种形式的标签赋值
本文关键字:一种 赋值 标签 其他 调用 | 更新日期: 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);