0

我对 C# 编程非常陌生,我在一个类中有开始按钮,在另一个类中有带有 TextBox 的 Transfer Start 和 Transfer Stop 标签。两者都在设计中的不同选项卡中。我可以在同一个选项卡和类中显示开始和停止时间,但我无法在另一个类中显示。我附上了如下简单设计。![示例][1]

当我单击项目选项卡中的“开始”按钮时,它必须在带有标签“传输开始”的文本框中显示开始时间。与停止按钮也相同。我想显示开始和停止时间。在项目选项卡中,我还有一些其他功能要添加,但我没有在这里显示。

4

2 回答 2

1

您可以使用委托将值传递给第二个选项卡/类,以避免交叉线程问题等......类似于:

MyClass.NotifyParentUI += new EventHandler<MyArgs>(UpdateMyLabel);

 public void UpdateMyLabel(object sender, MyArgs ea)
    {
        this.Invoke(new MethodInvoker(
            delegate()
            {
                myLabel.Text = ea.Message;
            }));
    }


public class MyArgs : EventArgs
{
    public string Message { get; set; }
}

然后在要从使用中传递数据的类中:

public MyClass
{
     public static event EventHandler<MyArgs> NotifyParentUI;

     protected virtual void OnMyEvent(MyArgs ea)
     {
         if (NotifyParentUI != null)
         {
             NotifyParentUI(this, ea);
         }
     }
}

使用:

  OnMyEvent(new MyArgs() { Message = "Transfer start/stop values go here" });

传递价值

于 2013-02-08T10:16:04.053 回答
0

您可以使用各种方法在表单之间传递数据 在表单之间传递数据

  1. 通过构造函数
  2. 通过全局属性
  3. 通过事件

如果两个选项卡的表单相同,则可以使用控件本身。那有什么问题?

public Class form2 {
public form2(string somevalues)
{
 //use this values. in form2 
}
}

public class form1 {
form2 objfrm = new form2("your value");
}
于 2013-02-08T10:09:34.727 回答