尝试从主窗体中获取数据到表单2.主窗体有一个文本框 和一个按钮。当按下按钮时,它打开表格2,它将在主表格中输入的数据显示为一系列文本块。
但是我无法在表单之间传输数据。代码是吼叫。 任何人都可以帮助或建议我可以做的不同的事情吗?
WPF 1主要形式:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnOpenForm_Click(object sender, RoutedEventArgs e)
{
//btnset: Takes the values contained in the text boxes and updates
//the student class
//properties.
Student.sFname = firstname.Text;
Student.sSname = secondname.Text;
Window1 details = new Window1();
details.Show();
}
WPF 2代码:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = Student.sFname;
Sname.Text = Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
答案 0 :(得分:1)
有两种方法可以在两个类之间“传递数据”。最简单的方法是在Window1上公开属性或方法,只需设置您需要传递的文本。另一种方法是在Window1上创建一个构造函数,该构造函数将数据作为参数接收。以下是演示这些方法的代码。
public class Program
{
public static void Main(string[] args)
{
var c1 = new Class1();
c1.DoStuff();
}
}
public class Class1
{
public void DoStuff()
{
var c = new Class2("stuff");
var c2 = new Class2();
c2.AcceptStuff("stuff2");
c.Print();
c2.Print();
c2.MyData = "stuff3";
c2.Print();
}
}
public class Class2
{
private string _myData;
public Class2()
{
}
public Class2(string myData)
{
_myData = myData;
}
public string MyData
{
set { _myData = value;}
}
public void AcceptStuff(string myData)
{
_myData = myData;
}
public void Print()
{
Console.WriteLine(_myData);
}
}
打印
stuff
stuff2
stuff3
答案 1 :(得分:0)
我假设您在MainWindow中有一个类,如:
`Public class Student
{
public static string sFname;
public static string sSname;
}`
当您单击打开按钮时,您将为这些变量分配值,但如果要在另一个窗口中访问它们,请提及窗口名称,然后提及类名称。 检查此代码是否有效?
`public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = MainWindow.Student.sFname;
Sname.Text = Mainwindow.Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}`