我是C#编程的新手,我在一个类中有启动按钮,在另一个类中使用TextBox传输启动和传输停止标签。以及两者在设计中也有不同的标签。我可以在同一个选项卡和类中显示开始和停止时间,但我无法在另一个类中显示。我附加了如下简单设计。![示例] [1]
当我点击项目标签中的“开始”按钮时,它必须在文本框中显示标签为“传输开始”的开始时间。也与停止按钮相同。我想显示开始和停止时间。在项目选项卡中我还有一些其他功能要添加,但我没有在这里显示。
答案 0 :(得分: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" });
传递值
答案 1 :(得分:0)
您可以使用各种方法pass data between forms
在表单之间传递数据如果两个选项卡的表单相同,则可以使用控件本身。这有什么问题?
public Class form2 {
public form2(string somevalues)
{
//use this values. in form2
}
}
public class form1 {
form2 objfrm = new form2("your value");
}