我必须在C#中将id
从一种形式传递到另一种形式。
我无法做到这一点。
C#代码是:
private void btnedit_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow a in dataGridViewUnPaidList.Rows)
{
if (a.Cells[0].Value != null)
{
Convert.ToInt64(a.Cells[1].Value); // i have to pass this id in AddInvoice() form
AddInvoice ad = new AddInvoice();
ad.Show();
NonPaideData non = new NonPaideData();
non.Hide();
}
else
{
MessageBox.Show("Now Row Is Selected");
}
}
}
有谁能告诉我我做错了什么?
答案 0 :(得分:5)
在AddInvoice
中创建一个属性:
public long CellValue { get; set }
分配给它:
private void btnedit_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow a in dataGridViewUnPaidList.Rows)
{
if (a.Cells[0].Value != null)
{
AddInvoice ad = new AddInvoice();
ad.CellValue = Convert.ToInt64(a.Cells[1].Value);
ad.Show();
NonPaideData non = new NonPaideData();
non.Hide();
}
else
{
MessageBox.Show("Now Row Is Selected");
}
}
只需在AddInvoice
CellValue
中使用它。
哦,如果这实际上是代码,我想你可能意味着this.Hide();
而不是创建一个新的NonPaideData
并隐藏它。
答案 1 :(得分:3)
在Form1中
private void ShowForm2()
{
string value = TheTextBox.Text;
Form2 newForm = new Form2();
newForm.TheValue = value;
newForm.ShowDialog();
}
在Form2中
private string _theValue;
public string TheValue
{
get
{
return _theValue;
}
set
{
_theValue = value;
// do something with _theValue so that it
// appears in the UI
}
}
请参阅此代码,我认为这会对您有所帮助。