RadPropertyGrid should not invalidate the properties when the help bar is resized.
Workaround: class MyRadPropertyGrid : RadPropertyGrid { protected override void WndProc(ref Message m) { switch (m.Msg) { case 0x7b: Point point; int x = Telerik.WinControls.NativeMethods.Util.SignedLOWORD(m.LParam); int y = Telerik.WinControls.NativeMethods.Util.SignedHIWORD(m.LParam); if (((int)((long)m.LParam)) == -1) { point = new Point(this.Width / 2, this.Height / 2); } else { point = this.PointToClient(new Point(x, y)); } this.PropertyGridElement.PropertyTableElement.ProcessContextMenu(point); return; } base.WndProc(ref m); } }
Here is the code that should be used for custom sub-properties private void OnCreateItem(object sender, CreatePropertyGridItemEventArgs e) { e.Item = new MyPropertyGridItem((PropertyGridTableElement)sender, e.Parent); } As visual studio would be happy of you only provide a constructor with one argument when you inherit from PropertyGridItem you have no way of knowing that you need a second one where the parent should be the second argument. The proper way to handle this would be to set the parent internally.