Como regla general, si no hay ninguna manera en un lenguaje para hacer algo que por lo general significa que hay una buena razón conceptual para no hacerlo.
A veces esto será culpa de los diseñadores de idiomas, pero no a menudo. Usualmente encuentro que saben más sobre el diseño del lenguaje que yo ;-)
En este caso, usted desea que un método virtual no anulado arroje una excepción de tiempo de compilación (en lugar de uno de tiempo de ejecución). Básicamente un método abstracto entonces.
Hacer que los métodos virtuales se comporten como los abstractos va a crear un mundo de confusión para ti más adelante en la línea.
Por otro lado, el diseño del complemento VS a menudo no está al mismo nivel (eso es un poco injusto, pero ciertamente se aplica menos rigor que en la etapa de diseño del lenguaje, y con razón).Algunas herramientas de VS, como el diseñador de clases y los editores actuales de WPF, son buenas ideas, pero aún no están completas.
En el caso que usted está describiendo, creo que tiene un argumento para no usar el diseñador de clases, no es un argumento para hackear su código.
En algún momento (tal vez en el próximo VS) van a poner en orden cómo el diseñador de la clase trata con las clases abstractas, y luego tendrás un truco sin la menor idea de por qué fue codificado de esa manera.
Siempre debe ser el último recurso para hackear su código para adaptarse al diseñador, y cuando intenta mantener los piratas informáticos mínimos. Encuentro que generalmente es mejor tener un código conciso y legible que tenga sentido rápidamente sobre el código bizantino que funciona en las herramientas rotas actuales.
¿Cómo se las arregló para diseñar la clase base en el diseñador? –