public ThemeablePropertyGrid() { _gridView = Controls[2]; _scrollBar = _gridView.Controls[0] as VScrollBar; _scrollBar.ValueChanged += _scrollBar_ValueChanged; // remove old scroll bar from the controls _gridView.Controls.Remove(_scrollBar); // gridView subscribed to its events, so we can't override and replace the scrollbar => use reflection. // this is protected method, so it's OK to use refection. _onScroll = _scrollBar.GetType().GetMethod("OnScroll", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public); // add themeable scrollbar C1ScrollBar = new C1VScrollBar() { Dock = DockStyle.Right, Width = _scrollBar.Width + 1, Location = new System.Drawing.Point(0, 0) }; C1ScrollBar.Scroll += _c1ScrollBar_Scroll; C1ScrollBar.ValueChanged += C1ScrollBar_ValueChanged; UpdateProperties(); _gridView.Controls.Add(C1ScrollBar); var m = Margin; m.Right = C1ScrollBar.Width; Margin = m; }