Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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中不同窗体之间的访问数据控件#_C#_Xml - Fatal编程技术网

C# C中不同窗体之间的访问数据控件#

C# C中不同窗体之间的访问数据控件#,c#,xml,C#,Xml,现在,如果ListBox控件“listBox1”位于应用程序的另一种形式,例如“form1”中, 如何获取数据并在“Form2”的数据网格中使用它?据我所知,以下是方法 使用目标表单中的属性,并在实例化其类时分配它 以目标表单构造函数传递数据源 您目前在Form2中,这里是另一种方式,Form1.ListBox.YourpropertyName 可以使用委托,但它会占用大量内存,也应该在使用后进行处理 创建一个具有静态成员的类,并在转到目标窗体并在目标窗体中访问该值之前对其进行初始化 此外,控件

现在,如果ListBox控件“listBox1”位于应用程序的另一种形式,例如“form1”中,
如何获取数据并在“Form2”的数据网格中使用它?

据我所知,以下是方法

  • 使用目标表单中的属性,并在实例化其类时分配它
  • 以目标表单构造函数传递数据源
  • 您目前在Form2中,这里是另一种方式,Form1.ListBox.YourpropertyName
  • 可以使用委托,但它会占用大量内存,也应该在使用后进行处理
  • 创建一个具有静态成员的类,并在转到目标窗体并在目标窗体中访问该值之前对其进行初始化
  • 此外,控件的访问修饰符应该适合于以其他形式访问

    请注意如果您以前的表单处于打开状态,则第3点有效。否则,它将在列表框中显示空数据 在第5点中,静态变量内存在使用后应设置为null

    XmlDataDocument xmlDatadoc = new XmlDataDocument();
    
    xmlDatadoc.DataSet.ReadXml(dir + listBox1.SelectedItem);
    
    DataSet ds = new DataSet("Customer info");
    
    ds = xmlDatadoc.DataSet;
    
    dataGridView1.DataSource = ds.DefaultViewManager;
    
    dataGridView1.DataMember = "Customer";