0

Mainform にリストビューがあり、テキスト ボックスに値を取得し、他のフォーム名 Add_Order にラベルを付ける必要がありますか?

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

3 に答える 3

3

個人的には、Add_Order フォームでコントロールを公開するつもりはありません。呼び出し元のフォームは、Add_Order フォームの内部を認識する必要はなく、パブリック メソッドとプロパティのみを認識する必要があります。Public Method を作成し、それを使用して必要な情報を取得します。このようなもの:

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;
    }
}

メインフォーム

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);
}
于 2013-03-18T06:26:05.410 に答える
1

フォーム間でデータ共通データを維持するためのパブリッククラスを作成するなど、さまざまな方法でデータを他のフォームに渡すことができます。または、次のようなフォームコンストラクターを使用してデータを渡すことができます。

Add_Order frmAddOrder=new Add_Order(data1,data2);
frmAddOrder.show();

およびAdd_Orderコンストラクター内:

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

        }
于 2013-03-18T06:28:19.417 に答える
1

私はあなたのために簡単なものを書きます:

Add_Orderフォームで要素Modifiersをに設定します: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);
             .
             .
             .
        }
    }

編集

または構造を作成します:

Add_Order.cs

 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;
    }

Mainform.cs

 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);
        }
    }
于 2013-03-18T06:29:48.987 に答える