To reproduce: public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radGanttView1.GanttViewElement.GraphicalViewElement.TimelineStart = new DateTime(2010, 10, 9); this.radGanttView1.GanttViewElement.GraphicalViewElement.TimelineEnd = new DateTime(2010, 12, 10); this.FillGanttViewWithData(); } private void radGanttView1_SelectedItemChanged(object sender, GanttViewSelectedItemChangedEventArgs e) { var dateToFocus = e.Item.Start; this.radGanttView1.GanttViewElement.GraphicalViewElement.ScrollTo(dateToFocus); } private void FillGanttViewWithData() { //setup data items GanttViewDataItem item1 = new GanttViewDataItem(); item1.Start = new DateTime(2010, 10, 10); item1.End = new DateTime(2010, 10, 15); item1.Progress = 30m; item1.Title = "Summary task.1. title"; GanttViewDataItem subitem11 = new GanttViewDataItem(); subitem11.Start = new DateTime(2010, 10, 10); subitem11.End = new DateTime(2010, 10, 12); subitem11.Progress = 10m; subitem11.Title = "Sub-task.1.1 title"; GanttViewDataItem subitem12 = new GanttViewDataItem(); subitem12.Start = new DateTime(2010, 10, 12); subitem12.End = new DateTime(2010, 10, 15); subitem12.Progress = 20m; subitem12.Title = "Sub-task.1.2 title"; //add subitems item1.Items.Add(subitem11); item1.Items.Add(subitem12); this.radGanttView1.Items.Add(item1); GanttViewDataItem item2 = new GanttViewDataItem(); item2.Start = new DateTime(2010, 10, 12); item2.End = new DateTime(2010, 10, 18); item2.Progress = 40m; item2.Title = "Summary task.2. title"; GanttViewDataItem subitem21 = new GanttViewDataItem(); subitem21.Start = new DateTime(2010, 10, 12); subitem21.End = new DateTime(2010, 10, 13); subitem21.Progress = 10m; subitem21.Title = "Sub-task.2.1 title"; GanttViewDataItem subitem22 = new GanttViewDataItem(); subitem22.Start = new DateTime(2010, 10, 13); subitem22.End = new DateTime(2010, 10, 18); subitem22.Progress = 30m; subitem22.Title = "Sub-task.2.2 title"; GanttViewDataItem subitem23 = new GanttViewDataItem(); subitem23.Start = new DateTime(2010, 10, 18); subitem23.End = new DateTime(2010, 10, 18); subitem23.Title = "Sub-task.2.3 title"; //add subitems item2.Items.Add(subitem21); item2.Items.Add(subitem22); item2.Items.Add(subitem23); this.radGanttView1.Items.Add(item2); //add links between items GanttViewLinkDataItem link1 = new GanttViewLinkDataItem(); link1.StartItem = subitem11; link1.EndItem = subitem12; link1.LinkType = TasksLinkType.FinishToStart; this.radGanttView1.Links.Add(link1); GanttViewLinkDataItem link2 = new GanttViewLinkDataItem(); link2.StartItem = subitem21; link2.EndItem = subitem22; link2.LinkType = TasksLinkType.StartToStart; this.radGanttView1.Links.Add(link2); GanttViewLinkDataItem link3 = new GanttViewLinkDataItem(); link3.StartItem = subitem22; link3.EndItem = subitem23; link3.LinkType = TasksLinkType.FinishToStart; this.radGanttView1.Links.Add(link3); GanttViewTextViewColumn titleColumn = new GanttViewTextViewColumn("Title"); GanttViewTextViewColumn startColumn = new GanttViewTextViewColumn("Start"); GanttViewTextViewColumn endColumn = new GanttViewTextViewColumn("End"); this.radGanttView1.GanttViewElement.Columns.Add(titleColumn); this.radGanttView1.GanttViewElement.Columns.Add(startColumn); this.radGanttView1.GanttViewElement.Columns.Add(endColumn); } } Workaround: public class CustomGanttView : RadGanttView { protected override RadGanttViewElement CreateGanttViewElement() { return new CustomGanttViewElement(); } public override string ThemeClassName { get { return typeof(RadGanttView).FullName; } } } public class CustomGanttViewElement : RadGanttViewElement { protected override GanttViewGraphicalViewElement CreateGraphicalViewElement(RadGanttViewElement ganttView) { return new CustomGanttViewGraphicalViewElement(this); } protected override Type ThemeEffectiveType { get { return typeof(RadGanttViewElement); } } } public class CustomGanttViewGraphicalViewElement : GanttViewGraphicalViewElement { public CustomGanttViewGraphicalViewElement(RadGanttViewElement ganttView) : base(ganttView) { } protected override Type ThemeEffectiveType { get { return typeof(GanttViewGraphicalViewElement); } } public override bool ScrollTo(DateTime dateTime) { if (dateTime < this.TimelineBehavior.AdjustedTimelineStart || dateTime > this.TimelineBehavior.AdjustedTimelineEnd) { return false; } float halfViewWidth = (float)this.ViewElement.Size.Width / 2f; float x = (float)((dateTime - this.TimelineBehavior.AdjustedTimelineStart).TotalSeconds / this.OnePixelTime.TotalSeconds); x -= halfViewWidth; if (x < 0) { this.TimelineScroller.Scrollbar.Value = this.TimelineScroller.Scrollbar.Minimum; } else if (x > this.TimelineScroller.Scrollbar.Maximum) { this.TimelineScroller.Scrollbar.Value = this.TimelineScroller.Scrollbar.Maximum - this.TimelineScroller.Scrollbar.LargeChange; } else { this.TimelineScroller.Scrollbar.Value = (int)x; } return true; } }