Grid 에서 RichEdit 쓸때 엔터키로 높이 자동 조절…
// GridVIew 행 높이 자동 조절 활성화
gvMain.OptionsView.RowAutoHeight = true;
// 특정 컬럼에 Editor 를 할당
RepositoryItemRichTextEdit mEdit = new RepositoryItemRichTextEdit();
mEdit.KeyUp += mEdit_KeyUp;
this.gvMain.Columns["REMARK"].ColumnEdit = mEdit;
// 엔터키 입력시 Editor 를 Close 함으로써 그리드가 행 높이를 자동 조절하게 하고
// 다시 Editor 를 활성화해서 이전에 입력한 Caret 위치를 복원해준다
void mEdit_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == (Keys.Enter))
{
RichTextEdit editor = (RichTextEdit)sender;
PropertyInfo myPropertyInfo1 = editor.GetType().GetProperty("InnerControl", BindingFlags.NonPublic | BindingFlags.Instance);
RichEditControl control = myPropertyInfo1.GetValue(editor, null) as RichEditControl;
DevExpress.XtraRichEdit.API.Native.DocumentPosition prevPos = control.Document.CaretPosition;
gvMain.CloseEditor();
gvMain.ShowEditor();
control.Document.CaretPosition = prevPos;
}
}
0 Comments