1

idC# で 1 つのフォームから別のフォームに渡す必要があります。

私はこれを行うことができません。

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

誰が私が間違っているのか教えてもらえますか?

4

2 に答える 2

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

そして、それをAddInvoiceasで使用するだけCellValueです。

ああ、それが実際のコードである場合、おそらく新しいものを作成してそれを隠すthis.Hide();代わりに意味していたと思います.NonPaideData

于 2012-08-04T18:53:07.823 に答える
4

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

    }
}

このコードを参照してください。これが役立つと思います。

于 2012-08-04T19:39:08.847 に答える