Вы можете создать интерфейс, и тогда будут доступны только методы и свойства интерфейса.
public interface ICustomControl {
string MyProperty { get; set;}
}
public class CustomControl : UserControl, ICustomControl {
public string MyProperty { get; set; }
}
...
ICustomControl cControl = new CustomControl();
Тогда intellisense показывает только элементы MyProperty и Object (и методы расширения, если таковые имеются).
EDIT:
protected ICustomControl CustomControl { get; set; }
public Form1()
{
InitializeComponent();
CustomControl = this.customControl1;
CustomControl.MyProperty = "Hello World!"; // Access everything through here.
}
Затем вы можете сделать область действия CustomControl внутренней или защищенной внутренней, если хотите.