Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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# - Fatal编程技术网

C# 从另一个窗体获取数据

C# 从另一个窗体获取数据,c#,C#,我在我的主窗体中有一个listview,我需要在文本框中获取值,并在其他窗体名称的标签中添加\u顺序 Add_Order add = new Add_Order(); ListViewItem item = new ListViewItem(); item.Text = add.textBox3.Text; item.SubItems.Add(add.label6.Text); item.SubItems.Add(add.textBox2.Text); item.SubItems.Add(add

我在我的主窗体中有一个listview,我需要在文本框中获取值,并在其他窗体名称的标签中添加\u顺序

Add_Order add = new Add_Order();
ListViewItem item = new ListViewItem();
item.Text = add.textBox3.Text;
item.SubItems.Add(add.label6.Text);
item.SubItems.Add(add.textBox2.Text);
item.SubItems.Add(add.textBox1.Text);
item.SubItems.Add(add.textBox3.Text);
mainform.listView2.Items.Add(item);

我个人不会在您的Add_订单中公开控件。您的调用表单不应该知道Add_Order表单的内部,而应该只知道它的公共方法和属性。我会创建一个公共方法,并使用它来检索您需要的信息。大概是这样的:

添加订单.cs

public partial class Add_Order : Form
{
    public Add_Order()
    {
        InitializeComponent();
    }
    public List<string> GetData()
    {
        List<string> list = new List<string>();
        list.Add(textBox3.Text);
        list.Add(label6.Text);
        list.Add(textBox2.Text);
        list.Add(textBox1.Text);
        return list;
    }
}
 public partial class Add_Order : Form
    {
        public Add_Order()
        {
            InitializeComponent();
        }

        public Info Get_Data()
        {
            return new Info() { _textBox3 = textBox3.Text,
                                _label6 = label6.Text,
                                _textBox2 = textBox2.Text,
                                _textBox1 = textBox1.Text,
            };
        }

    }
    struct Info
    {
        public string _textBox3;
        public string _label6;
        public string _textBox2;
        public string _textBox1;
    }
 public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            frm2.ShowDialog();
            Info lst_data= frm2.Get_Data();
            ListViewItem item = new ListViewItem();
            item.Text = lst._textBox3;
            item.SubItems.Add(lst._label6);
            item.SubItems.Add(lst._textBox2);
            item.SubItems.Add(lst._textBox1);
            mainform.listView2.Items.Add(item);
        }
    }
public分部类添加顺序:表单
{
公共添加顺序()
{
初始化组件();
}
公共列表GetData()
{
列表=新列表();
list.Add(textBox3.Text);
添加列表(标签6.Text);
list.Add(textBox2.Text);
list.Add(textBox1.Text);
退货清单;
}
}
MainForm

private void button1_Click(object sender, EventArgs e)
{
    Add_Order add = new Add_Order();
    add.ShowDialog();

    ListViewItem item = new ListViewItem();
    List<string> data = add.GetData();
    item.Text = data[0];
    item.SubItems.Add(data[1]);
    item.SubItems.Add(data[2]);
    item.SubItems.Add(data[3]);
    item.SubItems.Add(data[0]);
    listView2.Items.Add(item);
}
private void按钮1\u单击(对象发送者,事件参数e)
{
添加订单添加=新添加订单();
add.ShowDialog();
ListViewItem=新建ListViewItem();
List data=add.GetData();
item.Text=数据[0];
项目.子项目.添加(数据[1]);
项目.子项目.添加(数据[2]);
项目.子项目.添加(数据[3]);
项.子项.添加(数据[0]);
listView2.Items.Add(项目);
}

我个人不会公开您的添加订单表单中的控件。您的调用表单不应该知道Add_Order表单的内部,而应该只知道它的公共方法和属性。我会创建一个公共方法,并使用它来检索您需要的信息。大概是这样的:

添加订单.cs

public partial class Add_Order : Form
{
    public Add_Order()
    {
        InitializeComponent();
    }
    public List<string> GetData()
    {
        List<string> list = new List<string>();
        list.Add(textBox3.Text);
        list.Add(label6.Text);
        list.Add(textBox2.Text);
        list.Add(textBox1.Text);
        return list;
    }
}
 public partial class Add_Order : Form
    {
        public Add_Order()
        {
            InitializeComponent();
        }

        public Info Get_Data()
        {
            return new Info() { _textBox3 = textBox3.Text,
                                _label6 = label6.Text,
                                _textBox2 = textBox2.Text,
                                _textBox1 = textBox1.Text,
            };
        }

    }
    struct Info
    {
        public string _textBox3;
        public string _label6;
        public string _textBox2;
        public string _textBox1;
    }
 public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            frm2.ShowDialog();
            Info lst_data= frm2.Get_Data();
            ListViewItem item = new ListViewItem();
            item.Text = lst._textBox3;
            item.SubItems.Add(lst._label6);
            item.SubItems.Add(lst._textBox2);
            item.SubItems.Add(lst._textBox1);
            mainform.listView2.Items.Add(item);
        }
    }
public分部类添加顺序:表单
{
公共添加顺序()
{
初始化组件();
}
公共列表GetData()
{
列表=新列表();
list.Add(textBox3.Text);
添加列表(标签6.Text);
list.Add(textBox2.Text);
list.Add(textBox1.Text);
退货清单;
}
}
MainForm

private void button1_Click(object sender, EventArgs e)
{
    Add_Order add = new Add_Order();
    add.ShowDialog();

    ListViewItem item = new ListViewItem();
    List<string> data = add.GetData();
    item.Text = data[0];
    item.SubItems.Add(data[1]);
    item.SubItems.Add(data[2]);
    item.SubItems.Add(data[3]);
    item.SubItems.Add(data[0]);
    listView2.Items.Add(item);
}
private void按钮1\u单击(对象发送者,事件参数e)
{
添加订单添加=新添加订单();
add.ShowDialog();
ListViewItem=新建ListViewItem();
List data=add.GetData();
item.Text=数据[0];
项目.子项目.添加(数据[1]);
项目.子项目.添加(数据[2]);
项目.子项目.添加(数据[3]);
项.子项.添加(数据[0]);
listView2.Items.Add(项目);
}

您可以通过不同的方式将数据传递给其他表单,例如创建公共类以维护表单之间的数据公共数据,或者使用表单构造函数传递数据,如:

Add_Order frmAddOrder=new Add_Order(data1,data2);
frmAddOrder.show();
在您的添加顺序构造函数中:

    public Add_Order (string data1,string data2)
        {
            InitializeComponent();
   //you can access data1 and data2 here ...

        }

您可以通过不同的方式将数据传递给其他表单,如创建公共类以维护表单之间的数据公共数据,或者使用表单构造函数传递数据,如:

Add_Order frmAddOrder=new Add_Order(data1,data2);
frmAddOrder.show();
在您的添加顺序构造函数中:

    public Add_Order (string data1,string data2)
        {
            InitializeComponent();
   //you can access data1 and data2 here ...

        }

我给你写了一个简单的例子:

在添加订单表单中将元素
修饰符设置为
true

并以主要形式获得:

  public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            List<string> info= new List<string>;
            info.Add( frm2.textBox1.Text);
             .
             .
             .
        }
    }
Mainform.cs

public partial class Add_Order : Form
{
    public Add_Order()
    {
        InitializeComponent();
    }
    public List<string> GetData()
    {
        List<string> list = new List<string>();
        list.Add(textBox3.Text);
        list.Add(label6.Text);
        list.Add(textBox2.Text);
        list.Add(textBox1.Text);
        return list;
    }
}
 public partial class Add_Order : Form
    {
        public Add_Order()
        {
            InitializeComponent();
        }

        public Info Get_Data()
        {
            return new Info() { _textBox3 = textBox3.Text,
                                _label6 = label6.Text,
                                _textBox2 = textBox2.Text,
                                _textBox1 = textBox1.Text,
            };
        }

    }
    struct Info
    {
        public string _textBox3;
        public string _label6;
        public string _textBox2;
        public string _textBox1;
    }
 public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            frm2.ShowDialog();
            Info lst_data= frm2.Get_Data();
            ListViewItem item = new ListViewItem();
            item.Text = lst._textBox3;
            item.SubItems.Add(lst._label6);
            item.SubItems.Add(lst._textBox2);
            item.SubItems.Add(lst._textBox1);
            mainform.listView2.Items.Add(item);
        }
    }

我给你写了一个简单的例子:

在添加订单表单中将元素
修饰符设置为
true

并以主要形式获得:

  public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            List<string> info= new List<string>;
            info.Add( frm2.textBox1.Text);
             .
             .
             .
        }
    }
Mainform.cs

public partial class Add_Order : Form
{
    public Add_Order()
    {
        InitializeComponent();
    }
    public List<string> GetData()
    {
        List<string> list = new List<string>();
        list.Add(textBox3.Text);
        list.Add(label6.Text);
        list.Add(textBox2.Text);
        list.Add(textBox1.Text);
        return list;
    }
}
 public partial class Add_Order : Form
    {
        public Add_Order()
        {
            InitializeComponent();
        }

        public Info Get_Data()
        {
            return new Info() { _textBox3 = textBox3.Text,
                                _label6 = label6.Text,
                                _textBox2 = textBox2.Text,
                                _textBox1 = textBox1.Text,
            };
        }

    }
    struct Info
    {
        public string _textBox3;
        public string _label6;
        public string _textBox2;
        public string _textBox1;
    }
 public partial class main : Form
    {
        public main()
        {
            InitializeComponent();
            Get_Frm2_Data();
        }
        private void Get_Frm2_Data()
        {
            Add_Order frm2 = new Add_Order();
            frm2.ShowDialog();
            Info lst_data= frm2.Get_Data();
            ListViewItem item = new ListViewItem();
            item.Text = lst._textBox3;
            item.SubItems.Add(lst._label6);
            item.SubItems.Add(lst._textBox2);
            item.SubItems.Add(lst._textBox1);
            mainform.listView2.Items.Add(item);
        }
    }

创建表单时,字段中是否有值?此外,我认为您需要表单上的属性,这些属性将公开您可以在
Mainform
上使用的各个字段的值。是的,我在字段上有值。添加订单表单已打开?尚未。。它只会在我单击一个按钮时打开。创建表单时,字段中是否有值?此外,我认为您需要表单上的属性,这些属性将公开您可以在
Mainform
上使用的各个字段的值。是的,我在字段上有值。添加订单表单已打开?尚未。。它只会在我点击一个按钮时打开。我的类应该是什么样子的???@YOUn'Me你的意思是什么,我为你的Add_Order类提供的示例应该有效。您希望您的工作流如何工作。简而言之,你是按什么顺序做事的。我的班级应该是什么样子的???@YOUn'Me你的意思是什么,我给你的Add_order班级举的例子应该有用。您希望您的工作流如何工作。简言之,你做事的顺序是什么?我该怎么用这个??