先把值赋值在右边,以便更改,更改的同时也设置值在左边。通过行结束编辑事件实现自动保存。
代码如下:
int _FocusedRowHandle = -1;
string _FocusedColumn = "";
private void gridView1_ShowingEditor(object sender, CancelEventArgs e)
{
//获取当前视图
DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
//获取当前行数据
var curRow = ((DataRowView)_v织布日报BindingSource.Current).Row;
this.txtValue.EditValueChanged -= new System.EventHandler(this.txtValue_EditValueChanged);
txtValue.EditValue = curRow[view.FocusedColumn.FieldName] + "";
this.txtValue.EditValueChanged += new System.EventHandler(this.txtValue_EditValueChanged);
_FocusedRowHandle = view.FocusedRowHandle;
_FocusedColumn = view.FocusedColumn.FieldName;
}
/// <summary>
/// 值更改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtValue_EditValueChanged(object sender, EventArgs e)
{
if (_FocusedRowHandle >= 0 && _FocusedColumn != "")
{
gridView1.SetRowCellValue(_FocusedRowHandle, _FocusedColumn, txtValue.Text);
}
}