DIGIT*
//我是新手,我已经测试了我的程序并显示出来。希望得到您的帮助,如何获取txtBox2.Text和txtBox3.Text值。谢谢。
答案 0 :(得分:2)
您已经创建了UserControl1
的实例,但是尚未对该实例执行任何操作。它不是任何形式的一部分,不会显示给用户,等等。您已经成功设置了值,但从未向用户显示这些值。因为该实例与其他任何实例都没有关系,例如您当前在屏幕上看到的那个实例。
退后一步。无论如何,您的Opcconnect
类不应尝试直接设置UI控件。它应该仅返回UI所需的数据,并且表单代码应更新控件。例如:
public partial class Opcconnect : OPCServerClass
{
public Tuple<string, string> DataRead()
{
return new Tuple<string, string>("SJZ", "TEST");
}
}
(我在这里使用Tuple<T1,T2>
是因为没有任何上下文,就无法知道哪种数据结构更合适。您可能想要为此使用自定义类。但是现在,至少返回两个字符串值。)
然后在表单代码中获得这些值并更新控件:
public partial class UserControl1 : UserControl,IRequireGraphicInterface
{
private void button1_Click(object sender, RoutedEventArgs e)
{
Opcconnect OC = new Opcconnect();
var values = OC.DataRead();
txtBox2.Text = values.Item1;
txtBox3.Text = values.Item2;
txtBox4.Text = "zjy";
}
}
基本上,将您的UI代码保留在UI中。应用程序的不同层(UI,业务逻辑,数据库和基础结构依赖性)不应跨越层边界泄漏其实现,而应仅使用/返回正在传输的数据。