【问题标题】:How to call assign value of label of one form In other class?如何在另一个类中调用一种形式的标签的赋值?
【发布时间】:2015-09-11 06:10:37
【问题描述】:

我正在上课

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 中提供静态但无法获取在其他类中分配的标签值。

我该怎么做,请帮忙。

【问题讨论】:

  • Request.cs 是另一种形式吗?
  • 不,它只是同一个项目中的一个类Request.cs类

标签: c# forms winforms


【解决方案1】:

转到表单的设计器,选择您的标签,在属性中选择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");

【讨论】:

  • @ShopShop 显示您的代码。你不应该有任何静态的东西,相反你应该在你的请求类中有一个表单实例——
  • 大约 6 年后 :D 感谢您的反馈 ;)
【解决方案2】:

cheating 方式:

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 的实例: 请求.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");
    }
}

假设 MainForm 在 Program.cs 中被调用:

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

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多