What about moving those helper methods to a helper class, rather than inheriting them from a base class? That would solve your problems, and improve your design in one stroke.
There are some very good design reasons to not extend a class for the sole purpose of gaining access to it's methods (see the Liskov Design Principle) Inheritance is a very powerful tool, but it carries with it many dangers. You are experiencing one of them. Many people people feel that inheritance should be avoided when possible, and there are several Design Patterns that exist for that purpose.
Instead of having your pages inherit from your helper class, you can take the methods to which you need access, and move them to a seperate helper class. Your pages can then instantiate that new class, and get the methods they need. For example:
public class HelperBase : UserControl {
public void doSomethingUseful(){
//do some trick
}
}
public class MyPageClass : HelperBase {
public MyPageClass(){
InitializeComponent();
doSomethingUseful();
}
}
Becomes
public class Helper {
public void doSomethingUseful(){
//do some trick
}
}
public class MyPageClass : UserControl {
public MyPageClass(){
InitializeComponent();
Helper helper = new Helper();
helper.doSomethingUseful();
}
}
You still get to keep all the helper code in one place (a good thing!) You also get to avoid fighting with studio over generated code (a good thing.) Most importantly, you get to avoid a potentially nasty downstream maintenance problem (a very good thing.)