0

私の c# (VS2008) アプリケーションには、2 つの winform があります。Form1 には、「Employee」オブジェクトのリストを表示する DataGridView があります。この datagridview は、EmployeeList BindingSource にデータバインドされています。Form2 では、コントロールは Employee bindingsource にバインドされています。

Form2 の Employee を Form1 の EmployeeList に追加できます。私が欲しいのは、データグリッドビューをダブルクリックするたびに、選択した従業員データで Form2 が開くことです。次に、更新されたデータが Form1 の datagridview に送り返されます。ただし、datagridview は Form2 から更新されません。

そのためのテクニックとは。

事前に感謝します。SKポール。

4

2 に答える 2

0

投稿されたコードがなければ、特定の問題を解決することはできませんが、これは試すことができる一般的なものです。

Form1 で

public void UpdateEmployee(Employee emp)
{
   //update whatever info for that employee
}


private void dataGridView1_CellClick(object sender,
    DataGridViewCellEventArgs e)
{
      DataGridViewCell selectedEmployeeCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex]; //Get whatever data you're sending from this to the new form

      Employee tempEmployee = getEmployee(selectedEmployeeCell);

      Form2 updateEmp = new Form2(tempEmployee, this);
      updateEmp.showDialog();
}

Form2 で

    public Form2(Employee emp, Form1 parent)
    {
        //blah blah blah
    }

 private void UpdateEmployee(Employee emp)
{
    parent.UpdateEmployee(emp);
}      
于 2012-11-16T18:28:35.873 に答える
0

グリッド ビューでウィザード データ ソースを使用しないようにしています。手動でグリッドをコーディングしてから、最初のグリッドの編集行にあるボタンを使用して、URL の変数を 2 番目のグリッドに渡します。または、あなたの場合、最初のグリッドの選択された行イベントかもしれません。

于 2012-11-16T18:59:35.513 に答える