Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从用户控件访问其子窗体?_C#_Winforms_User Controls - Fatal编程技术网

C# 如何从用户控件访问其子窗体?

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>();

我有一个子窗体,它在用户控件中显示一个按钮,我想将用户控件中的ListView克隆到它的子窗体

我用breakpoint检查并打印了列表,但它给了我一个错误,比如越界或者实例变量为零

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请在您原来的帖子中添加这段代码来澄清问题。