此刻我感觉有些愚蠢,因为我读到的每个地方都是正常的程序,而我也无法找到为什么我也无法做到这一点!
所以,情况如下,我有一个父表和一个子表。儿童表有一个公共财产。从父表单,我想访问子表单公共属性,我不能。
我的代码如下:
家长代码:
namespace myProgram.UserInterfaces
{
public partial class ProjectNew : Form
{
public ProjectNew()
{
InitializeComponent();
}
private void ButtonSelectCustomer_Click(object sender, EventArgs e)
{
using (Form f = new ProjectCustomerList())
{
this.SuspendLayout();
f.ShowDialog(this);
}
this.Show();
}
}
}
子代码:
namespace myProgram.UserInterfaces
{
public partial class ProjectCustomerList : Form
{
public EntCustomer _selectedCustomer = new EntCustomer();
public EntCustomer SelectedCustomer {
get
{
return _selectedCustomer;
}
}
public ProjectCustomerList()
{
InitializeComponent();
}
// --- other code ---
}
}
在使用(Form f = new ProjectCustomerList())后,我想执行以下操作: var sCustomer = f.SelectedCustomer; ,但是当我这样做时,Visual Studio无法识别Child Form公共属性。
我做错了什么? :|
答案 0 :(得分:3)
继承是正常的,因为在你的情况下f被处理为一个简单的Form。
您可以将其类型转换为ProjectCustomerList
以访问该属性。
运算符也很有用。
if (f is ProjectCustomerList)
{
(f as ProjectCustomerList).SelectedCustomer =...;
}
或只是
using (ProjectCustomerList f = new ProjectCustomerList())
{
f.SelectedCustomer =...;
}
在其他评论中看到var,也有效
using (var f = new ProjectCustomerList())
{
f.SelectedCustomer =...;
}