15

tentativo di aggiungere un modulo Windows esistente in un progetto WinForm VS2012, andare "Aggiungi/elemento esistente ..." quindi importare: MyForm.cs, MyForm.designer.cs, MyForm.resxImportazione di Windows Form (C#), Visual Studio 2012

Questo usato per funzionare nelle versioni precedenti di VS. (Potrebbe essere necessario regolare gli spazi dei nomi.)

In VS2012 MyForm.designer.cs e MyForm.resx non sono ora associati al modulo per scopi del progettista; Ad esempio, vengono visualizzati come voci di file separate in Esplora soluzioni, non nidificate in MyForm. Facendo doppio clic su MyForm viene visualizzato un modulo vuoto (senza controlli) senza messaggi di errore. Il progetto viene compilato e eseguito OK.

Tuttavia, quando trascino gli stessi file nel progetto (regolare/rinominare lo spazio dei nomi), i file di modulo sono associati correttamente l'un l'altro e Designer apre il modulo correttamente.

Mentre ora ho una soluzione, qualcuno può evidenziare qual è la differenza tra questi approcci, qual è il punto di avere un'opzione Aggiungi/Elemento esistente se non funziona, e cosa sta succedendo effettivamente durante il trascinamento dei file ? Quale file (.csproj forse?) È responsabile per unire i file del modulo? Perché funziona in entrambe le direzioni nelle versioni precedenti di VS posso presumere che questo sia un bug?

Grazie.

risposta

26

Ho cercato di riprodurre il problema senza successo.

Si supponga di voler importare un modulo chiamato YourFormName. Quindi è necessario aggiungere solo YourFormName.cs al progetto - le parti di riposo (YourFormName.designer.cs e YourFormName.resx) verranno aggiunte automaticamente.

miei passi:

  1. Creare WinForms progetto (nel mio caso .NET Framework è 4) in VS2012 (11.0.05727.1 se le cose)
  2. destro del mouse su progetti -> Aggiungi -> elemento esistente ...
  3. Cerca qualsiasi WinForm con controlli (ho aggiunto due moduli creati in VS2010 per .NET framework 4 e 3.5)
  4. Con un certo ritardo (circa 30-40 secondi), per entrambi i casi "Designer" ha lavorato come previsto e caricato tutti i controlli esistenti/codebehind
+0

Hmm, si prega di chiarire "Si dovrebbe solo aggiungere Form1.cs ..." ?? Form1 viene generato automaticamente quando viene creata una nuova applicazione Windows Form. Lascio perdere ... Quando aggiungi i moduli esistenti, quali _file_ cerchi e selezioni? Tutti e 3 (cioè .cs, .designer.cs e .resx?) Questo è quello che faccio comunque. Ho aspettato e aspettato, sia che sia 0.4 secondi o 40 secondi che non faccia differenza, finisco per vedere 3 voci di file in Solution Explorer e Designer non funziona. – Matthias

+0

'Form1.cs' è solo un nome generico di un Form sottolineando che si dovrebbe aggiungere solo il file' .cs' - non '.resx' o' .designer.cs'.Modifica la mia risposta per chiarire – Nogard

+0

Ok, ho capito. Se seleziono solo i file .cs, funziona come dici tu. Sicuramente un comportamento diverso rispetto alle versioni precedenti. Forse nelle versioni precedenti ha funzionato anche con la semplice importazione dei cs, ma ha "perdonato" se uno ha selezionato anche gli altri. Curioso però, ha bisogno di .designer.cs, è qui che vivono tutte le cose importanti del controllo. Inoltre include .resx nella maschera del file quando si cercano i file da importare (ma si attiva se lo fai effettivamente :-) Penso che abbia risposto. Grazie Nogard. – Matthias

3

Basta includere il file cs e solo wait per circa mintue. Non è necessario aggiungere altri file. Funzionerà.

andare a project> aggiungere existing item selezionare il file modulo myform.cs e quindi fare clic sul pulsante add. Questo importerà il file nel tuo progetto.

+1

tnX .. funziona. –

+0

benvenuto ha funzionato anche per me. – NomanJaved

Problemi correlati