You can't change the visibility of methods when you inherit them - even if you create a new private method to "hide" it, the base method will still be available.
However, you can prevent it being seen easily:
public class C1
{
public void M1() { Console.WriteLine("C1:M1"); }
public void M2() { Console.WriteLine("C1:M2"); }
}
public class C2 : C1
{
[Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)]
public new void M1() { Console.WriteLine("C2:M1"); }
}
This will hide it from intellisense so neither version (C1 or C2) is visible - but only from outside the assembly. It will still be possible to call the C2 version directly by typing in the name, but you won't be able to access the C1 version via a C2 variable.
I.e. If you add a reference to your control library within an different solution, Intellisense will not list the property. (You can however still access it if you type the name in fully. Irritating, but true.)