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# > DevExpress' 카테고리의 다른 글
[DevExpress] GridControl 헤더에 체크박스 넣기 (0) | 2022.12.17 |
---|---|
[DevExpress] FormatConditionRuleIconSet 사용하여 값의 범위에 따라 특정 아이콘 보여주도록 설정 하기 (0) | 2022.12.16 |
[DevExpress] GridControl DataSource에 대용량 데이터 세팅할 시, 느린 이슈 해결하는 방법 (0) | 2022.11.30 |