有什么办法可以将数据从数组传递到我的第二个表单而不必创建多个属性和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); }
}
}
答案 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();
}
}