728x90
Grid 옵션으로 직접 코딩하지 않고 설정할 수 있지만 Grid의 Cell을 Merge하는 작업을 해서인지 옵션이 적용되지 않았다. 그래서 직접 구현하는 방법을 찾아보았다.
private int hotTrackRow = DevExpress.XtraGrid.GridControl.InvalidRowHandle;
private int HotTrackRow {
get {
return hotTrackRow;
}
set {
if (hotTrackRow != value) {
int prevHotTrackRow = hotTrackRow;
hotTrackRow = value;
gridView1.RefreshRow(prevHotTrackRow);
gridView1.RefreshRow(hotTrackRow);
if (hotTrackRow >= 0)
gridControl1.Cursor = Cursors.Hand;
else
gridControl1.Cursor = Cursors.Default;
}
}
}
private void gridView1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) {
GridView view = sender as GridView;
GridHitInfo info = view.CalcHitInfo(new Point(e.X, e.Y));
if (info.InRowCell)
HotTrackRow = info.RowHandle;
else
HotTrackRow = DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) {
if (e.RowHandle == HotTrackRow)
e.Appearance.BackColor = Color.PaleGoldenrod;
}
// 커서가 행 위에 있지 않을 때 HotTrack 제거하는 메서드
private void gridView1_MouseLeave(object sender, EventArgs e)
{
HotTrackRow = DevExpress.XtraGrid.GridControl.InvalidRowHandle;
}
[출처]
https://supportcenter.devexpress.com/ticket/details/a998/how-to-implement-hot-tracking-for-grid-rows
https://supportcenter.devexpress.com/ticket/details/q372810/how-to-implement-the-hot-track-functionality-for-grid-rows-and-remove-hot-tracking-when
728x90
'C#' 카테고리의 다른 글
Task Parallel Library에 대한 예외 처리1 - Child Task에 대한 예외 처리 (0) | 2023.01.23 |
---|---|
[DevExpress] AccordionControl Group Header에 Check Box 넣기 (0) | 2023.01.23 |
HttpWebRequest 클래스를 활용한 POST 전송 (0) | 2023.01.18 |
[Visual Studio] 응용 프로그램 권한 상승하기 (0) | 2023.01.17 |
[Visual Studio] 네임스페이스에 형식 또는 네임스페이스 이름이 없습니다. 해결 방법 (0) | 2023.01.17 |