Scarica il programma Windows Form come aggiungere. Programmazione in .NET Framework. Test per LoginPresenter
Oggi voglio dirti come creare un progetto Windows Forms C++ nell'IDE di Visual Studio 2013. A destra, in quello che, a partire da VS 2012, dall'elenco dei progetti che possono essere creati, è stata rimossa la voce Addendum Windows Forms. Sto parlando di quelli in C++, puoi creare un progetto del genere in C# selezionando l'opzione nella distribuzione dei progetti che vengono creati. Tuttavia, il fatto che un tale progetto non possa essere selezionato dall'elenco non parla di quelli che non possono essere creati. Per quanto mi riguarda, voglio espandere questo articolo.
La prima cosa che devi fare è avviare Visual Studio. Non appena VS è stato avviato, viene premuto in sequenza File\u003e Crea\u003e Progetto
Successivamente verrà richiesto di scegliere la tipologia del progetto. È necessario selezionare l'estensione CLR dell'estensione Visual C++ e selezionare il progetto CLR vuoto.
Se il progetto viene creato, nel browser si fa clic con il tasto destro del mouse sulla soluzione relativa al progetto creato. Nel menu contestuale apparso si seleziona in sequenza Aggiungi > Crea elemento e nel menu visualizzato, nella sezione UI, si seleziona Windows Forms Form
Se il modulo viene inviato, il file MyForm.cpp viene selezionato nella soluzione del browser. Di fronte a voi nuova scheda con una sola riga di codice:
#include "MyForm.h"
Per questo file, dobbiamo aggiungere il codice successivo:
Utilizzo del sistema dello spazio dei nomi; usando lo spazio dei nomi System::Windows::Forms; void Main(array
Sentiamo le autorità del progetto. Scegliamo pіdrozdil Sistema dividere Builder e in una riga Sottosistema dal menu selezionare Windows (/SUBSYSTEM:WINDOWS) e fare clic su Start.
Senza limitare l'autorità del progetto, passiamo alla suddivisione di Dodatkovo e di seguito punto d'entrata scrivere Principale e dopo di ciò premiamo il tasto OK.
Su quale progetto sarà completato. Per modificare l'aspetto corrente del modulo, vai alla scheda MyForm.h [Costruttore] facendo clic sul file MyForm.h nel Browser delle soluzioni.
Buona giornata!
Model-View-Presenter: presenta un modello di progettazione personalizzato. A prima vista, tutto sembra semplice: є modello (Modello), come vendicare l'intera logica aziendale sullo schermo; Visualizza / Sottomissione (Visualizza), che sai, come visualizzare quegli altri dati; Il rappresentante (presentatore), che è fortunato, reagisce alla suddivisione del coristuvacha nella vista, cambiando il modello e navpaki.
La piegatura inizia, se il numero di moduli nel progetto diventa maggiore per uno.
L'articolo esamina:
- Teoria di Trochia;
- problemi brucianti implementazione di MVP (passive view zocrema) in Windows Forms;
- caratteristiche dell'implementazione di transizioni tra moduli e trasferimento di parametri, finestre modali;
- Affiliazione del container IoC al modello Dependency Injection - DI (e allo stesso Constructor Injection);
- caratteristiche specifiche del test dei programmi MVP (per i test NUnit e NSubstitute);
- tutto dovrebbe essere applicato all'esempio di un mini-progetto ed essere motivato ma per farlo bene.
L'articolo è bloccato:
- Adattatore modello Zastosuvannya (adattatore);
- Semplice implementazione del template dell'Application Controller.
Per chi è questo articolo?
Il rango principale per i rivenditori-pochatkivtsiv su Windows Forms, come chuli, ma non l'hanno provato, o l'hanno provato, ma non l'hanno fatto. Volendo cantare, deyakіyi zastosovnі per WPF e navіt per lo sviluppo web.
Dichiarazione problema
Pensa a un compito semplice: implementa 3 schermate:1) schermata di autorizzazione;
2) schermo per la testa;
3) schermata modale per cambiare il nome del koristuvach.
Colpevole di visitare schos su kshtalt tsyogo:
Teoria di Trochia
MVP, come un padrino, MVC (Model-View-Controller) delle invenzioni per motivi di chiarezza, la divisione della logica aziendale nel modo di visualizzazione.Su Internet, puoi vedere implementazioni MVP impersonali. In base alla modalità di consegna dei dati per l'invio, possono essere suddivisi in 3 categorie:
- Vista Passiva: Vista per eliminare la logica minima di visualizzazione dei dati primitivi (righe, numeri), la decisione sarà cura del Relatore;
- Modello di presentazione: View può trasmettere non solo dati primitivi, ma anche oggetti aziendali;
- Supervisioning Controller: View conosce la presenza del modello e ne ricava i dati.
Diamo un'occhiata alla modifica della vista passiva. Descriviamo i disegni principali:
- Interfaccia dati (IView), che è il miglior accordo per la visualizzazione dei dati;
- Aspetto - un'implementazione specifica di IView, come se potesse visualizzarsi in un'interfaccia specifica (Windows Form, WPF o aprire la console) e non sapesse nulla di chi lo usa. Hanno forme diverse;
- Modello - fornisce una logica di business alla logica di business (applica: accesso al database, repository, servizi). Forse è presentato in una classe diversa o, ancora, nell'interfaccia e nell'implementazione;
- un rappresentante per inviare un messaggio alla Submission attraverso l'interfaccia (IView), che gli richiede di iscriversi alla tua presentazione, che semplicemente convalida (riverifica) i dati inseriti; anche per vendicarsi del modello o dell'interfaccia, trasferendovi dati da View e richiedendone l'aggiornamento.
Tipica implementazione di un rappresentante
public class Presenter ( private readonly IView _view; private readonly IService _service; public Presenter( IView view, IService service) ( _view = view; _service = service; _view.UserIdChanged += () => UpdateUserInfo(); ) private void ) ( var user = _service.GetUser(_view.UserId); _view.Username = user.Username; _view.Age = user.Age; ) )
Quali vantaggi ci danno una connessione minima di classi (varie interfacce, sub)?
1. Consente di modificare liberamente la logica di qualsiasi componente, senza prendere decisioni.
2. Grandi opportunità per i test unitari. Gli shanuvalnik di TDD possono mettere le mani sull'impugnatura.
Facciamolo!
Come organizzare i progetti?
Immaginiamo che la soluzione sia formata da 4 progetti:- DomainModel - servizi di vendetta e tutti i repository, in una parola - modello;
- Presentazione - per vendicare la logica della relazione, così da mentire di fronte a una manifestazione visiva, tobto. tutti i Rappresentanti, interfacce Aspetto e altre classi base;
- UI - Addendum Windows Forms, più form (implementazione di interfacce Aspetto) e logica di lancio;
- Test - test unitari.
Cosa scrivere in Main()?
L'implementazione standard dell'esecuzione di un programma Windows Forms è simile alla seguente:Privato statico void Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm());
Ale mi l'ha fatto, in modo che i Rappresentanti cherubino le Apparizioni, vorrebbe, in modo che il codice fosse così:
Privato statico void Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var presenter = new LoginPresenter(new LoginForm(), new LoginService()); // Dependency Injection presenter.Run(); )
Proviamo a implementare la prima schermata:
Interfacce di base
// metodi generali di tutte le apparenze interfaccia pubblica IView ( void Show(); void Close(); ) // contratto, quale rappresentante interagirà con il modulo interfaccia pubblica ILoginView: IView ( string Nome utente ( get; ) string Password ( get; ); ) Evento Azione Login; // pod_ya "koristuvach tenta di accedere" void ShowError(string errorMessage); ) public interface IPresenter ( void Run(); ) // stupido servizio di autorizzazione public interface - Autorizzazione riuscita, altrimenti false )
omaggio
public class LoginPresenter: IPresenter ( private readonly ILoginView _view; private readonly ILoginService _service; public LoginPresenter(ILoginView view, ILoginService service) ( _view = view; _service = service; _view.Login += () view .Password); ) public void Run () ( _view.Show()); ) private void Login(string username, string password) ( if (username == null) throw new null) throw new ArgumentNullException("password"); var user = new User(Nome = username, Password = password); if (!_service.Login(user)) else ( // Autorizzazione riuscita, avvio della schermata principale (?) ) ) )
Crea un modulo e implementalo nell'interfaccia ILoginView, non importa come scrivi l'implementazione di ILoginService. Quanto segue è meno di una caratteristica:
Classe parziale pubblica LoginForm: Form, ILoginView ( // ... public new void Show() ( Application.Run(this); ) )
Questo è l'incantesimo per consentire al nostro componente aggiuntivo di avviarsi, visualizzare il modulo e, dopo aver chiuso il modulo, completare correttamente il programma. Giriamoci indietro fino ad allora.
Ci saranno prove?
Dal momento in cui è stato scritto il rappresentante (LoginPresenter), è possibile eseguire immediatamente lo yoga-unit-testing, non implementando alcun modulo, alcun servizio.Per i test di scrittura, sono un collaboratore delle librerie NUnit e NSubstitute (una libreria per la creazione di classi stub dietro le loro interfacce, mock).
Test per LoginPresenter
Classe pubblica LoginPresenterTests ( private ILoginView _view; public void SetUp() ( _view = Substitute.For
I test non funzionano bene, purché il programma stesso. Ale, quindi chi іnakshe puzza è passato con successo.
Chi e come avviare un'altra schermata con il parametro?
Come puoi ricordare, non ho scritto il codice corretto per l'autorizzazione riuscita. Come posso avviare un'altra schermata? Innanzi tutto cade il pensiero:// LoginPresenter: login riuscito var mainPresenter = New MainPresenter(new MainForm()); mainPresenter.Run(utente);
Alemy si è reso conto che i rappresentanti non sapevano nulla della manifestazione, della Crimea delle loro interfacce. Cos'è il lavoro?
Viene in soccorso il pattern dell'Application Controller (l'implementazione è semplificata), al centro del quale c'è un container IoC, che sai come prendere l'oggetto dell'implementazione dietro l'interfaccia.
Il Controller viene passato al Rappresentante della skin da un parametro del costruttore (nuova DI) e implementa approssimativamente i seguenti metodi:
Interfaccia pubblica IApplicationController ( IApplicationController RegisterView
Dopo un piccolo refactoring, il lancio del programma sarebbe simile a questo:
Privato statico void Main() ( Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // tutti i fallback sono ora registrati in un'unica posizione: var controller = new ApplicationController(new LightInjectAdapder()) .RegisterView
Un paio di parole sul nuovo ApplicationController(new LightInjectAdapder()) . Come un contenitore IoC, ho violato la libreria LightInject, ma non direttamente, ma tramite un adattatore (modello adattatore), quindi se hai bisogno di cambiare il contenitore con uno diverso, potrei scrivere un adattatore diverso e non cambiare la logica del controllore. Tutti i metodi, che sono vittoriosi, sono nella maggior parte delle biblioteche dell'IoC, piegati e non colpevoli.
Viene implementata un'interfaccia IPresenter aggiuntiva, che è meno probabile che il metodo Run accetti un parametro. Diminuiremo gradualmente la visualizzazione di quella nuova, similmente alla prima schermata.
Ora, non senza orgoglio, lanciamo un'altra schermata, passando lì il koristuvach autorizzato:
Controller.Esegui
Non puoi semplicemente prendere e chiudere il modulo.
Una delle pietre sottomarine di fila View.Close() , dopo di che il primo modulo è stato chiuso e, allo stesso tempo, un'aggiunta da esso. A destra, Application.Run(Form) esegue il ciclo di riattivazione standard di Windows e considera il modulo passato come modulo principale del programma. Ciò è dovuto al fatto che il programma si blocca ExitThread sul modulo Form.Closed che chiama il programma per chiudersi dopo la chiusura del modulo.Esistono diversi modi per aggirare questo problema, uno di questi consiste nel modificare il metodo: Application.Run (ApplicationContext), quindi ignorare la potenza di ApplicationContext.MainForm. Il trasferimento al contesto del modulo viene implementato per l'aiuto del Controller del programma, in cui l'oggetto ApplicationContext (istanza) viene registrato e quindi inviato al costruttore del modulo (I start DI) all'inizio del Rappresentante. I metodi per visualizzare le prime due schermate ora si presentano così:
// LoginForm public new void Show() ( _context.MainForm = this; Application.Run(_context); ) // MainForm public new void Show() ( _context.MainForm = this; base.Show(); )
Finestra modale
L'attuazione della finestra modale non comporta difficoltà. Sul pulsante "Cambia nome", Controller.Run è spuntatoPubblico nuovo void Show() ( ShowDialog(); )
Per quanto sia necessario riconoscere la differenza, non è necessario modificare il metodo, poiché la classe Form ha già implementazioni.
Bene, hanno rovinato tutto ... Come è ora CE vikoristati?
Ora, se il frame è pronto, l'aggiunta di un nuovo modulo porterà a tali scorciatoie:- Scriviamo l'interfaccia dell'Aspetto, l'interfaccia del Modello (come richiesto).
- È realizzabile dal Rappresentante, prima facie virishivshi, in modo che nel nuovo trasferimento questi dati come modello.
- [Facoltativo] Scriviamo un test per il Rappresentante, cambieremo idea, va tutto bene.
- [Facoltativo] Modello implementabile e test per esso.
- Diamo la forma e implementiamo l'interfaccia dell'Aspetto.
Puoi prendere un progetto demo da
Ora è giunta l'ora di creare la nostra prima grande aggiunta.
Importanti quelli che si vedono in questa parte:
L'addendum, che si sta ampliando, sarà un piccolo modulo, che ripeto l'idea di un programma inventato molto tempo fa: sul modulo ci sarà il cibo "". Quando si tenta di puntare il browser sul pulsante " Così bello! ci segnerai sempre. Premi il bottone " Ciao non sarai circondato da nulla.
Creando questo programma, possiamo esaminare i principi fondamentali della creazione di tutti i supplementi C# e metodi di implementazione navigabili con il loro aiuto, indipendentemente dal fatto che siano obiettivi endemici: a volte - tse ticchetta in modo comico tutto il tempo.
Crea un nuovo progetto, installa il programma come modello Windows Form, come mostrato nel piccolo 1:
1. Creazione di un nuovo progetto.
Assegna un nome al progetto RandWindow e premere il pulsante OK.
Vikno al lavoro MS Visual Studio per vendicare l'insorgere di ulteriori mancanze (Fig. 2).
2. Finestre aggiuntive.
Su un numero esiguo di numeri è segnato:
- Vikno Cassetta degli attrezzi(Pannello degli elementi di controllo) - elementi di controllo che puoi inserire nel modulo che viene creato.
- Vikno esploratore di soluzioni(Decisione Oglyadach) - qui puoi fare questi nodi: Proprietà- adeguare il progetto, Collegamenti(Possilannya) - collegamento al progetto della biblioteca, nonché creazione e collegamento al progetto di file di codici esterni (con estensioni .cs) e collegati alla bozza di modulo (ad esempio, Modulo 1).
- Vikno vista di classe(Classe Vіkno) – qui puoi vedere tutte le creazioni della classe del programma.
- Vikno Proprietà(Potenza) - Selezionando se c'è un elemento da intagliare o creare una forma, puoi elaborare tutti i parametri di questo oggetto, oltre a modificare il valore impostato per la serratura.
La creazione dei programmi Windows viene eseguita fino alla creazione di tutte le finestre di dialogo necessarie, nonché al posizionamento degli elementi necessari su di esse. Nadali mi nalashtovuemo podia, facendoli coristuvachem, che nalashtovuemo aspetti tecnici dei programmi robotici. Nella nostra mente, abbiamo posizionato tutti gli elementi di controllo necessari sul modulo principale, dopodiché aggiungiamo un controllo per spostare il mouse e un controllo per premere i pulsanti.
Aggiunta di nuovi elementi al modulo
Successivamente, hai inserito il nome del progetto, inserito il modello richiesto e premuto il pulsante OK, MS Visual Studio creiamo automaticamente la cornice del programma della finestra, dopo di che possiamo aggiungere nuovi elementi della finestra.Per cui è necessario trascinare l'elemento finestra necessario dalla finestra degli strumenti ( cassetta degli attrezzi).
Il nostro viknu ha bisogno 2 elemento del campo di input, in cui vengono visualizzate le coordinate dell'input del mouse, che ci faciliteranno la comprensione del lavoro del programma.
Al centro della finestra verrà scritto, che creiamo per l'aiuto dell'elemento etichetta.
Il fondo sarà cucito 2
pulsanti.
I troch allungano il pezzo in lavorazione della vikna. Se premi quello nuovo con il tasto destro, vedrai menù contestuale. Avere uno nuovo da premere sul punto di autorità, se puoi modificare i parametri della finestra, puoi cambiarlo. Per un po' di 3 immagini, l'autorità più (di regola) necessaria:
Figura 3. Diversi livelli di potenza di una finestra (modulo) in C# .NET.
Troch per allungare il pezzo della finestra e aggiungere tutti gli elementi necessari. Per i piccoli 4 puoi schiaffeggiarli alla finestra cassetta degli attrezzi:
Bambino 4. Trascina e rilascia gli elementi della larghezza della casella degli strumenti sulla forma piegata.
Vai alle autorità di fila Etichetta1 cambia il testo in " Lavorerai per costruire la luce dei migliori?". Cambia anche il tipo di carattere, per il quale conosci l'autorità Font(Fig. 5).
5. Carattere di autorità dell'elemento Etichetta.
Dopo ciò che imposta il tipo di carattere Tahoma, larghezza del carattere Grassetto e rozmir uguale 16
(Fig. 6).
Figura 6. Regolazione del carattere.
Autorizzato a cambiare il testo sui pulsanti, potere vicorist Testo.
Il programma vykna del pezzo di Otriman si presenta così (Fig. 7).
Figura 7. La forma è simile a questa.
Parte tecnica dei programmi robotici
- Sul dorso della mia mano dodamo un campione del movimento del mouse e la vista realizzabile delle coordinate Xі y due creazioni del campo di input.
- Creiamo le funzioni di clattering sui tasti skin del mouse (soprattutto le cinghie del coristuvach, puoi comunque usare il pulsante " Così bello!»).
- Dacci un codice che implementi il modo in cui la finestra si sposta nel modo giusto, in modo che il cursore si avvicini al pulsante « Così bello!».
Movimento significativo del mouse da parte del modulo
Fare clic indiscriminatamente sulla parte del form del programma che si sta creando ( NON uno degli elementi).Ora vai alla potenza del modulo per l'aiuto di fare clic con il pulsante destro del mouse -> menù contestuale autorità.
Ora è necessario andare all'elenco dei possibili podi, yakі può vincere vittoriosamente. Per chi clicca sul pulsante " evento"(Podії), come mostrato nel piccolo 8:
8. Passare all'elenco delle voci possibili.
Se il koristuvach trasferisce il mouse nella finestra, sistema operativo Invio di aiuto al programma con le coordinate attuali dell'indicatore. Puzza e abbiamo bisogno.
Per riconoscere l'obobnik tsієї podії, conosci la riga MouseMove(piccolo 9), dopodiché il rumore nel campo è destrorso, darà automaticamente una copia della mano del mouse e verrà data la funzione Form1_MoveMove al codice del nostro programma.
Figura 9. Dopo un clic destro, nella riga apparirà MouseMove destrorso e verrà creata automaticamente la transizione al codice della funzione-computer.
Aggiungi 2 righe a questa funzione in modo che il codice assomigli a questo.
/*http://website, Anvi*/ private void Form1_MouseMove(object sender, MouseEventArgs e) ( // sposta la coordinata X nella riga e scrivila nei campi di input textBox1.Text = e.X.ToString(); // sposta la coordinata Y della riga che scrive nei campi di input textBox2.Text = e.Y.ToString();
Questa funzione, che converte la mossa secondaria dell'indicatore del mouse sopra il modulo, elimina 2
Parametro: Oggetto wdRunner e Istanza alla classe MouseEventsArgs, per vendicare le informazioni sulle coordinate della destinazione del bersaglio e altre autorità attuali.
casella di testo1і casella di testo2 ce istanza della classe casella di testo, che è implementato dai nostri elementi del campo di input.
Membro di queste istanze Testo Consente di inserire testo in questi campi.
In questo rango, ora devi compilare il programma ( F5), spostando l'indicatore del mouse dietro il modulo della finestra, abbiamo ancora le coordinate dell'indicatore (al centro del modulo), che cambiano senza interruzioni.
Passiamo ora alla preparazione del nostro modulo. Per chi clicca sull'apposito segnalibro (Form1.cs [Costruttore]), come mostrato nel piccolo 10:
10. Passare al costruttore di moduli C#.
Crea una metropolitana clicca sul primo pulsante: studio visivo aggiunge automaticamente il codice per l'elaborazione del pulsante quando premuto.
Aggiungi le righe successive al codice:
/*http://website, Anvi*/ private void button1_Click(object sender, EventArgs e) ( // Mostra un messaggio con il testo "Sei in" MessageBox.Show("Sei in!!"); // Termina l'applicazione Exit(); )
Ora tornerò al costruttore e darò a un amico un pulsante anche per l'aiuto di un clic mobile su di esso.
/*http://website, Anvi*/ private void button2_Click(object sender, EventArgs e) ( // Inserisci il messaggio, con il testo "Non abbiamo avuto dubbi sul tuo acquisto" // un altro parametro è il titolo del messaggio finestra "Uvaga" // MessageBoxButtons.OK - tipo di pulsante nel modulo di notifica // MessageBoxIcon.Information - tipo di notifica - matima l'icona "informazioni" e un suono udibile MessageBox.Show ("Non abbiamo esitato sul tuo importante request","Uvaga", MessageBoxButtons.OK, MessageBoxIcon. Informazioni);
Come un bachite, i mi trochs hanno semplificato il codice per una revisione settimanale, in modo da dimostrare come funziona, più report. Parametri baffi che vengono passati alla funzione mostrare commentato nel codice di output.
Ora non ci accorgiamo più del movimento della finestra nel momento in cui il mouse si avvicina al pulsante. Così bello».
Per cui mi dodamo il codice per la funzione:
vuoto privatoForm1_MouseMove(mittente dell'oggetto, MouseEventArgs)
Il principio è ancora più semplice: prendendo le coordinate della mano del topo, le cambieremo, per non entrare nella puzza del quadrato, che battezza con un piccolo margine il nostro bottone. In tal caso, genereremo 2 numeri vipadkovy, che saranno vikoristani per lo spostamento della finestra.
Potremmo semplicemente avvisarti di puntare l'indicatore del mouse sul pulsante, ma arriverà con una sfocatura commemorativa, al collegamento con il quale il coristuvach senza una pressione speciale viene premuto sul pulsante in modo da posizionare semplicemente il cursore nella zona vicino al pulsante.
Quindi abbiamo bisogno di dare voce a Deshcho " lavoratori"Smіnnih, yakі daremo vittorioso.
Generazione di numeri verticali
classe A caso in C#є generatore di numeri pseudovipad - tobto. Questa classe si distingue per il tipo di sequenza di numeri, che è coerente con i criteri statistici di vipadkovnosti.Casuale rnd = Nuovo Casuale();
Qui abbiamo espresso un'istanza della classe A caso (rnd), per l'aiuto di un tale numero vipadkovі. Nadalі batteremo il codice, mente rnd.Prossimo(intervallo_generazione) o rnd.Prossimo(da A -1 ) generare numero vipádico.
Quindi daremo voce in più al cambiamento, alcuni di essi verranno immediatamente avviati.
Windows.Forms.SystemInformation.PrimaryMonitorSize.Width; int _h = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height;
tmp_location goloshuetsya a quello, shchob al futuro timchasovo salva il campo di vikna.
Dovremmo quindi pensare a chi, in caso di spostamento verticale, la nostra finestra può andare ben oltre i confini dello schermo.
shob assegnare lo schermo a C#.NET , vikoristovuvaty:
/*http://site, Anvi*/ System.Windows.Forms.SystemInformation.PrimaryMonitorSize_hі _w prenditi cura del tuo schermo koristuvach, in quanto viene addebitato per l'inizializzazione.
Ora il codice per questa funzione è simile a questo:
/*http://esate.ru, Anvi*/ private void Form1_MouseMove(object sender, MouseEventArgs e) ( // traduci la coordinata X nella riga e scrivila nei campi di input textBox1.Text = e.X.ToString(); / / traduci la coordinata Y in una riga e scrivi nei campi di input textBox2.Text = e.Y.ToString(); // quindi le coordinate lungo l'asse X e lungo l'asse Y si trovano nel quadrato if, che è etichettato accanto a " così, meravigliosamente" (es. > 80 && e.X 100 && e.Y (_w - this.Width/2) ||tmp_location.Y(_h - this.Height/2)) , sul nuovo this.Location generato = tmp_location;) )
Axis, Vlasne, e basta. Dopo aver completato il programma, puoi provare a fare clic sul pulsante "Quindi, è fantastico". Tse sarà più importante.
Ultimo aggiornamento: 31.10.2015
Per la creazione di interfacce grafiche per la piattaforma aggiuntiva .NET vengono utilizzate varie tecnologie: Window Forms, WPF, add-on per Windows Store (per Windows 8/8.1/10). Tuttavia, la piattaforma di dossier più semplice e pratica è Window Forms o Forms. L'aiuto danese mette come metadati di comprensione i principi della creazione di interfacce grafiche per la tecnologia aggiuntiva WinForms e il lavoro dei principali elementi di gestione.
Creato da software grafico
Per creare un progetto grafico, abbiamo bisogno dell'ambiente di sviluppo di Visual Studio. Poiché la versione di Visual Studio 2013 è la più estesa finora, per chi aiuto, batterò la versione gratuita di questo mezzo Comunità di Visual Studio 2013 Yaku può essere trovato sul lato https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx.
Dopo aver installato il middleware e tutti i suoi componenti, avviare Visual Studio e creare un progetto di programma grafico. Per cui, nel menu, selezionare la voce File (File), e nel sottomenu, selezionare Nuovo -> Progetto (Crea -> Progetto). L'ultima cosa che vediamo davanti a noi è la finestra di dialogo della creazione di un nuovo progetto:
Nella colonna di sinistra seleziona Desktop di Windows e nella parte centrale dei tipi di progetto centrali - digita Applicazione Windows Form e per una signora, sono come se fossi nel campo sottostante. Ad esempio, chiamiamo yoga ciao app. La prossima cosa è premuto OK.
Dopo che Visual Studio ha aperto il progetto dai file creati dietro il lucchetto:
La maggior parte dell'ambito di Visual Studio è occupato da un grafico, che può assumere la forma di un programma futuro. Per il momento è vuoto e non c'è altro che l'intestazione Form1. Sulla destra puoi trovare i file di soluzione/progetto - Esplora soluzioni. Lì puoi trovare tutti i file relativi al nostro addendum, inclusi i file del modulo Form1.cs.
In basso, la curva a destra è conosciuta come la finestra dell'autorità - Proprietà. Poiché in questo momento ho scelto la forma come elemento di controllo, quindi in quale campo compaiono le autorità, legate alla forma.
Ora conosciamo il potere della forma Testo e cambiamo il suo significato in be-yak else:
In questo modo abbiamo cambiato il titolo del modulo. Ora trasferibile sul campo è un elemento chiave, ad esempio un pulsante. Per chi conosciamo la parte sinistra della scheda di Visual Studio Cassetta degli attrezzi. Fai clic su questa scheda e vedremo un pannello con elementi, possiamo trasferire le stelle nel modulo per qualsiasi altro elemento:
Conosciamo gli elementi centrali del pulsante i, dopo aver caricato її nel kazіvnik del mouse, lo trasferiamo nel modulo:
Tse è una parte visiva. Passiamo ora alla programmazione. Permettetemi di aggiungere il codice più semplice del mio C#, una sorta di attivazione e pressione di pulsanti. Per chiunque io sia colpevole, vai al file di codice, che è il collegamento da questo modulo. Poiché non abbiamo un file di codice da visualizzare, possiamo fare clic sul modulo con il tasto destro del mouse e nel menu Visualizza codice (Visualizza file di codice):
Tuttavia, lo velocizzeremo in modo diverso, per non scrivere troppo codice. Passa il puntatore del mouse sul pulsante e fai clic sui clic inferiori. Utilizziamo automaticamente il file di codice Form1.cs, che assomiglia a questo:
Utilizzo del sistema; vicorist System.Collections.Generic; utilizzando System.ComponentModel; utilizzando System.Data; sistema vicorist.Disegno; utilizzando System.Linq; usando System.Text; vicorist System.Threading.Compiti; utilizzando System.Windows.Forms; spazio dei nomi HelloApp ( classe parziale pubblica Form1: Form ( Form1 ( public ) ( InitializeComponent (); ) private void button1_Click (object sender, EventArgs e) ( ) )
Dodamo visualizza una notifica dopo aver premuto il pulsante, modificando il codice nel seguente ordine:
Utilizzo del sistema; vicorist System.Collections.Generic; utilizzando System.ComponentModel; utilizzando System.Data; sistema vicorist.Disegno; utilizzando System.Linq; usando System.Text; vicorist System.Threading.Compiti; utilizzando System.Windows.Forms; namespace HelloApp (classe parziale pubblica Form1: Form ( public Form1() ( InitializeComponent()); ) private void button1_Click(object sender, EventArgs e) ( MessageBox.Show("Hello"); ) ) )
Avvio del programma
Per eseguire il programma in modalità di avvio, premere il tasto F5 o la freccia verde nel pannello di Visual Studio. La prossima volta che il nostro modulo si avvia con il pulsante stesso. E se premiamo il pulsante sul modulo, ci verrà mostrato un promemoria sullo svapo.
Dopo aver avviato il programma, lo studio compila lo yoga dal file dell'estensione exe. Puoi trovare il file andando nella cartella del progetto e andando nella directory bin/Debug o bin/Release
Dopo aver esaminato brevemente la creazione di un'integrazione grafica al progetto, possiamo passare a una panoramica dei componenti principali e, ovviamente, dei moduli.