C# 如何从用户控件访问其子窗体?
我有一个子窗体,它在用户控件中显示一个按钮,我想将用户控件中的ListView克隆到它的子窗体 我用breakpoint检查并打印了列表,但它给了我一个错误,比如越界或者实例变量为零C# 如何从用户控件访问其子窗体?,c#,winforms,user-controls,C#,Winforms,User Controls,我有一个子窗体,它在用户控件中显示一个按钮,我想将用户控件中的ListView克隆到它的子窗体 我用breakpoint检查并打印了列表,但它给了我一个错误,比如越界或者实例变量为零 public partial class JobForm: Form { public Job() { InitializeComponent(); } List<string> joblist = new List<string>();
public partial class JobForm: Form
{
public Job()
{
InitializeComponent();
}
List<string> joblist = new List<string>();
public List<string> _var
{
set {
joblist = value; }
}
}
公共部分类作业表单:表单
{
公职()
{
初始化组件();
}
列表作业列表=新列表();
公共列表
{
设置{
作业列表=值;}
}
}
用户控制
private void button_Click(object sender, EventArgs e)
{
//MessageBox.Show(_var[0].ToString());
JobForm jb = new JobForm();
jb.Show();
}
public List<string> listViewJob()
{
_var.Add(item);
return _var;
}
public List<string> _var { get;} = new List<string>();
private void按钮\u单击(对象发送者,事件参数e)
{
//Show(_var[0].ToString());
JobForm jb=新JobForm();
jb.Show();
}
公共列表listViewJob()
{
_变量添加(项目);
收益率;
}
公共列表_var{get;}=新列表();
我还使用'var parent=this.parent作为JobForm;parent.ID2=ID2;但它给了我同样的错误。所以我用断点检查它是否是一个正确的列表,直到表单显示,然后在用户控件和表单中得到null或越界(_var)。如果您能写一个例子,我将不胜感激。非常令人困惑的是,
JobForm
和用户控件都有一个名为\u var
的列表。最好使用更具描述性的变量名
我不完全确定您想要实现什么,但基本上,当您创建子窗体时,您可以访问它的属性
例如:
private void button_Click(object sender, EventArgs e)
{
//MessageBox.Show(_var[0].ToString());
JobForm jb = new JobForm();
// Members of 'jb' are available here
this._var = jb._var;
jb.Show();
}
您是否在
JobForm
中使用usercontrol?项
来自何处?否,我有另一个表单,它是main for并具有tabpages(其中一个是此用户控件)。有一个函数返回我没有在这里编写函数的项:)只要它能工作是的,但问题是我必须使用User1 user=new User1()访问用户控件;也许在这里我应该访问现有的用户控件,而不是创建一个新的。@JuanRodre请在您原来的帖子中添加这段代码来澄清问题。