2011-11-11 2 views
6

Ho classe A derivata da una classe Windows.Form, utilizzando il designer VS2008. Quando faccio doppio clic sul nome del file in Visual Studio Solution Explorer, si apre la finestra di progettazione del modulo. Questo è il comportamento desiderato.Disabilita Designer per una classe derivata in Visual Studio 2008

Ho una seconda classe B, derivata da A (manualmente). Questa classe è codice puro - aggiunge alcune funzionalità ma la forma è la stessa - ma se faccio doppio clic sul nome del file in Visual Studio Solution Explorer, apre la finestra di progettazione del modulo. Questo è il comportamento indesiderato, in particolare perché avrò bisogno di produrre classi derivate analogamente C-Z.

C'è un modo per forzare l'apertura del file sempre nell'editor di codice? Sono consapevole di due soluzioni proposte:

  1. classe Dare B l'attributo: [System.ComponentModel.DesignerCategory ("")]

    Questo sembra aver lavorato in passato in base a vari messaggi, ma non sembra avere alcun effetto nella mia situazione. L'ambiente VS tenta ancora di aprire un designer di moduli per la classe.

  2. Rinominare il file di origine per meaningfulname.Designer.cs

    questo ... beh, semplicemente non è bello, non è vero?

La soluzione (1) funziona ancora? In tal caso, cosa potrei fare di sbagliato?

Oppure c'è un'altra soluzione?

risposta

9

Prova ad utilizzare [System.ComponentModel.DesignerCategory("Code")] invece.

+0

Ho provato anche questo, ma senza successo. Nel momento in cui B è impostato per derivare da A, l'ambiente lo classifica come una classe GUI. Rimuovi la classe base e si attiva. – MZB

+1

@MZB: Sembra che tu debba utilizzare il nome completo nell'attributo, sei sicuro di farlo? Altrimenti sono fuori dai suggerimenti. –

+1

Un genio, signore! Avevi ragione Avendo importato System.ComponentModel non stavo usando il percorso completo. Uno strano bug di Microsoft ... – MZB