11237 : Snap time item placements while moving

Question

I know I can use DateScaler.Snap to control time item placement, but now I want to have the time item jump in discrete steps while the user moves it.

Is that possible?

Answer

Sure, everything is possible:

    /// <summary>
    /// This is how you can quantify the movement, while moving, to, for example, 1 hour
    /// </summary>
    private void gantt1_OnTimeItem_Hoover_ForQuantifyTest(PlexityHide.GTP.Gantt aGantt, PlexityHide.GTP.TimeItemEventArgs e)
    {
      if (gantt1.MouseMoveKind==MouseMoveKind.move)
      {
        int orgpos=gantt1.DateScaler.TimeToPixel(e.TimeItem.Start+e.Diff);
        DateTime quantizedTime=gantt1.DateScaler.SnapTime(e.TimeItem.Start+e.Diff,new TimeSpan(1,0,0));
        int newpos=gantt1.DateScaler.TimeToPixel(quantizedTime);
        int diff=newpos-orgpos;
        e.x =e.x+diff;
      }
    }

Leave a Reply