2011-11-18 15 views
6

Ho appena iniziato a esplorare l'ambiente mono winforms e non riesco a capire come avviare un programma da monodevelop senza che venga avviata una sessione di console.Mono e WInform su OS X

Il mio semplice programma funziona correttamente ma quando si esce da una sessione terminale viene sempre creato & in attesa che venga premuto un tasto qualsiasi. Immagino di poter sistemare le cose in modo che la finestra del terminale si chiuda automaticamente, ma preferirei che l'app fosse semplicemente "nativamente", è possibile o il modo in cui funziona la funzione mono & .net lo preclude?

Come mostrato nello examples at Zetcode, in 'Main' il resto del codice viene avviato con 'application.run (new aFunction());', pensavo che questa potrebbe essere la causa della sessione del terminale che si verificava ma la sostituivo con:

 
myNewClass n = new myNewClass(); 
n.aFunction(); 

fa sì che il programma non venga eseguito affatto (o forse semplicemente esce senza fare nulla).

Sono un programmatore esperto ma non mi sembra affatto familiare con C# o con l'ambiente mono/.net, quindi "affermare l'ovvio" potrebbe essere tutto ciò che è richiesto in una risposta.

+0

La tua domanda non è chiara. Il motivo per cui la sessione del terminale non si sta chiudendo potrebbe essere un'impostazione di sistema. Il codice che hai postato non ha alcun senso. A meno che la classe che si sta iniziando erediti da un modulo, allora Application.Run (myNewClass) non funzionerà. Che tipo di applicazione stai pensando di fare? In realtà sono scioccato dal fatto che Mono sia come Application.Run dal momento che si suppone che sia limitato alle applicazioni Windows basate sulla documentazione. –

+0

Ho dato una rapida occhiata alla pagina, non c'è NIENTE per indicare che questo codice funzionerebbe su qualsiasi altro sistema operativo diverso da Windows con Mono installato. Non è possibile utilizzare un Windows Form su altri sistemi operativi diversi da Windows. –

+0

@RamHound Bene, il codice funziona su sistemi operativi diversi da Windows, altrimenti non avrei alcun problema. Forse ho frainteso qualcosa, ma perché altrimenti esisterebbe il mono oltre a fornire una piattaforma portatile per i programmi .net? – blankabout

risposta

3

MonoDevelop di solito consente di avviare un programma con o senza in esecuzione in una console esterna.

In MonoDevelop 2.8 su Linux è possibile controllare questo contesto, cliccando su un progetto nell'albero soluzione e selezionando Opzioni ; quindi Esegui su console esterna nella sezione Esegui. Non sono sicuro di poterlo disattivare su OSX.

+0

Trovato le opzioni "Esegui" sotto il menu Progetto/programma Opzioni. Esattamente quello che dice sulla scatola quindi grazie per avermi indicato nella giusta direzione. – blankabout