如何在RepositoryItemGridLookupEdit_ValueChanged事件中获取gridview单元格值并在TextEdit中设置?

时间:2013-11-26 10:12:29

标签: c# winforms gridview devexpress

我想得到一个特定焦点行和前一行的单元格值?我试过这段代码,

object obj1 = gridView1.GetRowCellValue(gridView1.FocusedRowHandle - 1, gridView1.Columns["Each"]);
string str1= obj1.ToString();
textEdit1.Text = str1;


textEdit1.Text = gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Each"]);

但是此代码适用于按钮,但在RepositoryItemGridLookupEdit_ValueChanged事件中不起作用,或者在CustomUnboundDataEvent中不起作用。

我想在编辑值更改事件中获取gridview的单元格值,然后在textEdit中设置?帮助我。

1 个答案:

答案 0 :(得分:1)

首先:textEdit1.Text = gridView1.SetRowCellValue(gridView1.FocusedRowHandle, gridView1.Columns["Each"]);

没有意义,因为你没有设置TextEdit的值,只是Cell的值。 SetRowCellValue是void方法!

要获得焦点行和上一行,您必须处理gridview.focusedrowchanged事件。您可以将行转换为数据源的值,然后将值分配给textedit。

示例:

private void grvUebersicht_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{

    DataRow row = (DataRow)grvUebersicht.GetRow(e.FocusedRowHandle);
    DataRow row2 = (DataRow) grvUebersicht.GetRow(e.PrevFocusedRowHandle);

    TextEdit textedit = new TextEdit();
    textedit.Text = row["MyColumn"].ToString();
}

此外,您应该考虑使用IList作为DataSource。在我看来,它更美丽,更现代。如果您需要帮助,我可以发送示例;)