2014-12-28 2 views
0

у меня есть два DataGridViews, один для просмотра некоторых элементов и еще один для хранения данныхКак добавить существующую строку из datagridview в другую, нажав кнопку «ввести» в строке?

я просто хочу принять кнопку Enter как двойной щелчок на строке отметить, что, когда я использую событие DoubleClick он дает мне обратно данные строки являются правильными. , но когда я использую событие KeyDown и использую кнопку ввода , он дает информацию о следующей строке! что неверно. здесь то, что я пытался по

private void datagridlistcust_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       Close(); 
      } 
     } 

и это, как я заполнить текст

TXTIDPROD.Text = FRM.DGVPRODUCTS.CurrentRow.Cells[0].Value.ToString(); 
    TXTNAMEPROD.Text = FRM.DGVPRODUCTS.CurrentRow.Cells[1].Value.ToString(); 
    TXTPRICE.Text = FRM.DGVPRODUCTS.CurrentRow.Cells[2].Value.ToString(); 

, наконец, это, как я заполняю вторую DataGridView

private void TXTDISCOUNT_KeyDown(object sender, KeyEventArgs e) 
     { 
      if (e.KeyCode == Keys.Enter) 
      { 
       DataRow r = dt.NewRow(); 
       r[0] = TXTIDPROD.Text; 
      r[1] = TXTNAMEPROD.Text; 
      r[2] = TXTPRICE.Text; 
      r[3] = TXTAMOUNT.Text; 
      r[4] = TXTTOTAL.Text; 
      r[5] = TXTDISCOUNT.Text; 
      r[6] = TXTAFTERDIS.Text; 
      dt.Rows.Add(r); 
      datagridview1.DataSource = dt; 

      } 
     } 

ответ

0

Существует очень простой способ для этого:

public Form() 
{ 
    InitializeComponent(); 

    // subscribe double click event handler 
    dataGrid.DoubleClick += txtHost_DoubleClick; 

    // subscribe keypress event handler 
    dataGrid.KeyPress += txtHost_KeyPress; 
} 

void dataGrid_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    // check for Enter Key Press 
    if (e.KeyCode == Keys.Enter) 
    { 
     // Call the double click event handler 
     dataGrid_DoubleClick(sender, e); 
    } 
} 
void dataGrid_DoubleClick(object sender, EventArgs e) 
{ 
    // Your Code here to handle double click event 
} 
+0

он по-прежнему получает данные следующей строки: –

+0

Вам просто нужно обработать событие двойного щелчка, а при вводе - нажать обработчик события двойного щелчка. –