Hi Peter,
This functionality can be achieved using a similar approach. The following code snippet demonstrates this:
public
Form1()
{
InitializeComponent();
this
.radScheduler1.MouseMove +=
new
MouseEventHandler(radScheduler1_MouseMove);
this
.radScheduler1.MouseDown +=
new
MouseEventHandler(radScheduler1_MouseDown);
this
.radScheduler1.MouseUp +=
new
MouseEventHandler(radScheduler1_MouseUp);
}
void
radScheduler1_MouseUp(
object
sender, MouseEventArgs e)
{
this
.radScheduler1.Capture =
false
;
}
void
radScheduler1_MouseDown(
object
sender, MouseEventArgs e)
{
if
(
this
.radScheduler1.ElementTree.GetElementAtPoint(e.Location)
is
SchedulerCellElement)
{
this
.radScheduler1.Capture =
true
;
}
}
void
radScheduler1_MouseMove(
object
sender, MouseEventArgs e)
{
if
(
this
.radScheduler1.DragDropBehavior.IsDragging || e.Button != System.Windows.Forms.MouseButtons.Left)
{
return
;
}
DayViewAppointmentsArea appointmentArea = (
this
.radScheduler1.SchedulerElement.ViewElement
as
SchedulerDayViewElement).DataAreaElement;
Rectangle tableRectangle = appointmentArea.ControlBoundingRectangle;
if
(!tableRectangle.Contains(e.Location))
{
if
(e.Y > tableRectangle.Bottom)
{
appointmentArea.Table.Scroll(
false
);
}
else
if
(e.Y < tableRectangle.Top)
{
appointmentArea.Table.Scroll(
true
);
}
}
}
I hope you find this useful. Feel free to ask if you have additional questions.
All the best,
Ivan Todorov
the Telerik team