使用Setter将数组值传递给第二个表单

时间:2015-09-23 14:50:43

标签: c# arrays forms getter-setter

  • 我有2个表格
  • 我的数据集中填充了值
  • 我在表单1上查询ds并提取结果,这是一列信息
  • 此信息保存在表单1
  • 上的数组中
  • 我想将此信息传递给第二个表单(表单2),文本框

有什么办法可以将数据从数组传递到我的第二个表单而不必创建多个属性和setter?

这是我的代码,我现在只传递1个值(列),因为我无法确定如何传递多个值。

感谢。

表格1

    //
    //SEARCH BUTTON
    //
    private void searchBtn_Click(object sender, EventArgs e)
    {
        string searchFor = tbSearch.Text;
        int results = 0;
        DataRow[] returnedRows;

        returnedRows = ds.Tables["Table_Data_1"].Select("parlour_number='" + searchFor + "'");
        results = returnedRows.Length;

        if (results > 0)
        {
            foreach (DataRow returned in returnedRows)
            {
                MessageBox.Show(returned[1].ToString() + " " + returned[2].ToString());

                SearchResults frm2 = new SearchResults();
                frm2.ResultsProp = returned[1].ToString();
                frm2.Show();
            }
        }
        else
        {
            MessageBox.Show("No results found");
        }
    }

搜寻结果(表格2)

public partial class SearchResults : Form
{
    public SearchResults()
    {
        InitializeComponent();
    }

    private string getResults(string result)
    {
        return parlourTb.Text = result;
    }

    private string passedResult;
    public string ResultsProp
    {
        set { passedResult = getResults(value); }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用第二个表单类构造函数

传递该值
SearchResults frm2 = new SearchResults(returned[1].ToString());
frm2.Show();

以这种方式更新第二张表格:

public partial class SearchResults : Form
{
    private string passedResult;

    public SearchResults(string result)
    {
        passedResult = result;
        InitializeComponent();
    }    
}

最后,您可以添加一个加载事件,以便将值分配给文本框:

private void SearchResults_Load(object sender, System.EventArgs e)
{
    parlourTb.Text = passedResult;
}

编辑:传递多个值。

List<string> results = new List<string>();

foreach (DataRow returned in returnedRows)
{
    MessageBox.Show(returned[1].ToString() + " " + returned[2].ToString());
    results.Add(returned[1].ToString());
}

SearchResults frm2 = new SearchResults(results);
frm2.Show();

第二个表单代码:

public partial class SearchResults : Form
{
    private List<string> passedResult;

    public SearchResults(List<string> results)
    {
        passedResults = results; // Then use your list.
        InitializeComponent();
    }    
}