在两个表单之间传递数据

时间:2017-03-27 15:04:56

标签: c# forms properties

首先,我想让你知道,我知道这个问题有很多结果,但是我已经搜索到了很多,仍然无法找到解决问题的方法。

我试图做以下事情:

1.constructor

2.objects

3.properties

4.delegates

但我对它们的实现都没有真正按预期工作(在这个"解决方案"我使用了属性

当我按下"返回"在"弹出"屏幕我不在主屏幕中选择的值"弹出"屏

基本上,它有类似的东西,我有主屏幕和弹出"

the main screen

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BakaritCV
{
    public partial class FrmProdChoose : MetroFramework.Forms.MetroForm
    {
        CVFeedUtilities utilities = new CVFeedUtilities();
        Mixtures mixture;
        public string selectedDefault = " 102";

        string t;
        public FrmProdChoose(string t)
        {
            InitializeComponent();
            this.t = t;

        }
        public FrmProdChoose()
        {
            InitializeComponent();

        }

        private void btnHome_Click(object sender, EventArgs e)
        {
            FrmMain frmload = new FrmMain();
            utilities.moveBetweenScreens(this, frmload);
        }

        private void mixtureBtn_Click(object sender, EventArgs e)
        {

            utilities.loadPopUp(this, mixture);
        }

        private void FrmProdChoose_Load(object sender, EventArgs e)
        {
            mixture = new Mixtures(this);
            mixtureBtn.Text = selectedDefault;

        }
        public string Selected
        { 
            get { return selectedDefault; }
            set { selectedDefault = value;  }

        }




    }
}

"弹出"

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BakaritCV
{
    public partial class Mixtures : MetroFramework.Forms.MetroForm     
    {
        string[] mixture = new string[] { "102", "103", "104", "105" };
        MetroFramework.Controls.MetroTile[] tiles;
        FrmProdChoose form;     
        string  selectedDefault; 
        CVFeedUtilities utilities = new CVFeedUtilities();
        public Mixtures(FrmProdChoose form)
        {
            InitializeComponent();
            this.form = form;
        }

        private void btnHome_Click(object sender, EventArgs e)
        {
            form.Selected = selectedDefault;
            utilities.closePopUp(this, form);
        }

        private void Mixtures_Load(object sender, EventArgs e)
        {
            tiles = new MetroFramework.Controls.MetroTile[] { tileOne, tileTwo, tileThree, tileFour};
            for (int i = 0; i < mixture.Length; i++)
                tiles[i].Text = mixture[i];
        }

        private void tileOne_Click(object sender, EventArgs e)
        {
            tileOne.BackColor = Color.ForestGreen;
            removeBackColor(1); 
        }

        private void tileTwo_Click(object sender, EventArgs e)
        {
            tileTwo.BackColor = Color.ForestGreen;
            removeBackColor(2); 
        }

        private void tileThree_Click(object sender, EventArgs e)
        {
            tileThree.BackColor = Color.ForestGreen;
            removeBackColor(3); 
        }

        private void tileFour_Click(object sender, EventArgs e)
        {
            tileFour.BackColor = Color.ForestGreen;
            removeBackColor(4); 
        }

        private void tileFive_Click(object sender, EventArgs e)
        {
            tileFive.BackColor = Color.ForestGreen;
            removeBackColor(5); 
        }


        public void removeBackColor(int index)
        {
            for (int i = 0; i < tiles.Length; i++)
            {
                if (i == index - 1)
                {
                    selectedDefault = tiles[i].Text;                    
                    continue;
                }

                else tiles[i].BackColor = Color.DeepSkyBlue;

            }
        }


    }
}

以及函数loadPopUpclosePopUp

   public void loadPopUp(Form from, Form to)
        {
            to.Tag = from;
            to.Show(from);
        }
        public void closePopUp(Form from, Form to)
        {
            to.Tag = from;
            if (!to.Visible)
                to.Show(from);
            from.Hide();
        }

0 个答案:

没有答案