【发布时间】:2013-05-13 18:42:34
【问题描述】:
您好,我找不到任何与我要查找的内容完全一致的内容。我在网站上看到了很多在两种形式之间传递数据的例子,例如
How can I pass values from one form to another? Using The Controls Of One Form Into Another How to access controls on an inherited form?
在几个博客和几个小时的阅读和没有得到它的基础上。
所以基本上这就是我想要完成的行为 使用 DockPanel 套件
主窗体parentForm
有一个固定在里面的表格Form1,它总是在那里。不能被删除或重新加载是恒定的(所以我假设应该总是相同的实例),它有一个文本框frm1Box。
parentForm 有一个带有按钮button1 的菜单栏,它将打开第三个表单Form2,它还有一个文本框frm2Box。我希望能够单击button1(来自parentForm)打开Form2,并将frm1Box 中的任何内容传递给frm2Box。
所以从阅读看来,设置属性似乎是每个人都推荐的,所以这就是我所做的,如果我只是通过单击 form1 的按钮来打开 form2 并传递数据,它会很好用,但我似乎不知道添加另一个表单时将其删除。这显然不是我的完整代码,如果需要它只是为了节省空间,我很乐意发布我的实际代码。
//Parent Form
public partial class parentForm : Form
public static Form1 form1 = new Form1();
public void showForm1()
{
form1 = new Form1();
form1.Show(dockPanel1, DockState.DockLeft);
}
private void parentForm_Load(object sender, EventArgs e)
{
showForm1();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.CustNameCb = form1.CustName;
form2.Show();
}
//Form1
public partial class Form1 : DockContent
{
private string _custName;
public Form2()
{
InitializeComponent();
}
public string CustName
{
get
{
return _custName;
}
set
{
_custName = value;
frm1Box.Text = _custName;
}
}
//Form2
public partial class Form2 : Form
{
private string _custNameCb;
public Form2()
{
InitializeComponent();
}
public string CustNameCb
{
get
{
return _custNameCb;
}
set
{
_custNameCb = value;
frm2Box.Text = _custNameCb;
}
}
我认为我完全错过了这个概念,但在我的搜索中找不到“好的”示例,或者至少找不到我可以遵循的示例。我是编程新手,尤其是 C#,所以请原谅我的经验不足。如果有人有更好的方法,请告诉我。我考虑过使用 SQL 来存储数据。如果可能的话,我宁愿不使用基于文件的存储。另外值得注意的是,一旦我找到了正确的方法,它就需要是可扩展的,因为当我实际实现它时,parentForm 上将有 5 个不同的按钮打开 5 个不同的表单,但仍然从同一个 Form1 中提取数据form1 将有大约 10 个文本框的数据要提取。
提前感谢您的任何回复。
【问题讨论】:
标签: c# .net winforms forms dockpanel-suite