here is a solution, you just need the instance of the class.
var OptionsPropertyGrid = new PropertyGrid();
OptionsPropertyGrid.Size = new Size(300, 250);
this.Controls.Add(OptionsPropertyGrid);
TestPropertyObject appset = new TestPropertyObject();
OptionsPropertyGrid.SelectedObject = appset;
This sample is assuming that you class's property is decorated with Category/description. let me know if I have misunderstood it.
Or by using dynamic object
var OptionsPropertyGrid = new PropertyGrid();
OptionsPropertyGrid.Size = new Size(300, 250);
this.Controls.Add(OptionsPropertyGrid);
this.Text = "Options Dialog";
string classname = "WindowsFormsApplication1.TestPropertyObject";
var type1 = Type.GetType(classname);
object obj = Activator.CreateInstance(type1);
OptionsPropertyGrid.SelectedObject = obj;
Make sure you can be able get the namespace of the class.