protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
Point MousePos = new Point(e.X, e.Y);
// Change cursor if over a header
int index;
HitTestType ht = HitTest(MousePos, out index, false);
if ( ht != HitTestType.Header && lastHighlightedHeader >=0 )HighlightHeader(-1);
if ( ht != HitTestType.Item && lastHighlightedItem >= 0 ) HighlightItem(-1, false);
if ( upArrowDrawState == DrawState.Hot && ht != HitTestType.UpScroll
|| flatArrowButtons )
if ( flatArrowButtons )
if ( upArrowVisible && UpFlatArrowState != DrawState.Normal)
DrawArrowButton(upArrowRect, ButtonState.Normal);
else
DrawArrowButton(upArrowRect, ButtonState.Normal);
if ( downArrowDrawState == DrawState.Hot && ht == HitTestType.DownScroll
|| flatArrowButtons )
if ( flatArrowButtons )
if ( downArrowVisible && DownFlatArrowState != DrawState.Normal )
DrawArrowButton(downArrowRect, ButtonState.Normal);
else
DrawArrowButton(downArrowRect, ButtonState.Normal);
if ( ht == HitTestType.Header )
{
Cursor.Current = Cursors.Hand;
HighlightHeader(index);
highlightTimer.Start();
}
else if (ht == HitTestType.Item )
{
HighlightItem(index, false);
highlightTimer.Start();
}
else if ( ht == HitTestType.UpScroll )
{
if ( flatArrowButtons
&& upArrowVisible )
{
if ( UpFlatArrowState != DrawState.Hot )
DrawArrowButton(upArrowRect, ButtonState.Pushed);
}
}
else if ( ht == HitTestType.DownScroll )
{
if ( flatArrowButtons
&& downArrowVisible)
{
if ( DownFlatArrowState != DrawState.Hot )
DrawArrowButton(downArrowRect, ButtonState.Pushed);
}
}
}