Scarica il programma Windows Form come aggiungere. Programmazione in .NET Framework. Test per LoginPresenter

Golovna / Informazioni Corisna

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 ^ args) ( Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Project1::MyForm form; Application::Run(%form); )

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 (); // stub per la vista var service = Substitute.For (); // stub per il servizio service.Login(Arg.Any ()) // non accedi più admin/password .Returns(info => info.Arg ().Nome == "admin" && info.Arg ().Password == "password"); var presenter = new LoginPresenter(_view, servizio); presentatore.Esegui(); ) public void InvalidUser() ( _view.Username.Returns("Vladimir"); _view.Password.Returns("VladimirPass"); _view.Login += Raise.Event (); _view.Received().ShowError(Arg.Any ()); // Questo metodo è responsabile della chiamata del testo della grazia ) public void ValidUser() ( _view.Username.Returns("admin"); _view.Password.Returns("password"); _view.Login += Raise.Event (); _view.DidNotReceive().ShowError(Arg.Any ()); // e nel mio vipadka va tutto bene))


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 () dove TImplementation: classe, TView dove TView: IView; IApplicationController RegisterService () de TImplementazione: classe, TService; vuoto Corri () dove TPresenter: classe, IPresenter; )
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 ().RegistraServizio ().RegistraVista (); controller.Esegui (); }
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 (utente); Visualizza.Chiudi();

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 è spuntato (utente). L'unico modo per visualizzare i moduli in altri non è il titolo, quel modulo non è necessario per visualizzare ApplicationContext:

Pubblico 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:
  1. Scriviamo l'interfaccia dell'Aspetto, l'interfaccia del Modello (come richiesto).
  2. È realizzabile dal Rappresentante, prima facie virishivshi, in modo che nel nuovo trasferimento questi dati come modello.
  3. [Facoltativo] Scriviamo un test per il Rappresentante, cambieremo idea, va tutto bene.
  4. [Facoltativo] Modello implementabile e test per esso.
  5. Diamo la forma e implementiamo l'interfaccia dell'Aspetto.
Cambiare il contenitore IoC nella persona amata è il modo per implementare una semplice interfaccia IContainer con una classe adattatore.

Puoi prendere un progetto demo da

  1. https://metanit.com/sharp/windowsforms/1.1.php

    Introduzione a Windows Form

    Per la creazione di interfacce grafiche per l'ausilio della piattaforma .NET, diverse tecnologie- Programmi Window Forms, WPF, 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, scriverò un tweet per il tuo aiuto versione gratuita dato 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:

    La colonna di sinistra seleziona il desktop di Windows e la parte centrale dei tipi di progetto centrali seleziona il tipo 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 cui conosciamo nella parte sinistra di Visual Studio la scheda Casella degli strumenti (Casella degli strumenti). 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;

    utilizzando System.ComponentModel;
    utilizzando System.Data;
    sistema vicorist.Disegno;
    utilizzando System.Linq;
    usando System.Text;

    utilizzando System.Windows.Forms;

    Spazio dei nomi HelloApp
    {

    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    }


    {

    }
    }
    }
    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;

    Spazio dei nomi HelloApp
    {
    classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    }

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    MessageBox.Show ("Ciao");
    }
    }
    }
    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. Sapere file dani puoi, vai alla cartella del progetto e spostala 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.

  2. https://metanit.com/sharp/windowsforms/2.1.php

    Robot con forme
    Fondamenti di forme

    Zovnіshnіy vglyad ci programma in maniera eccessiva attraverso i moduli. Le forme sono i principali blocchi della vita. La puzza mise su un contenitore per vari elementi di keruvannya. E il meccanismo di suddivisione consente agli elementi della forma di introdurre coristuvacha e, in tal modo, interagire con coristuvacha.

    Quando si apre un progetto in Visual Studio editore grafico Possiamo utilizzare la parte visiva del modulo, quella parte, come possiamo dopo l'avvio del programma e in cui gli elementi vengono trasferiti dal pannello di controllo. Ma in verità la forma assume un funzionale duro, che è fatto di metodi, autorità e altro. Diamo un'occhiata alle principali forme di alimentazione.

    Se eseguiamo il programma, apparirà un modulo vuoto. Protesta un progetto così semplice da un modulo vuoto con pochi componenti:

    Indipendentemente da quelli che solo il mio Bachimo forma, ma il punto di partenza per entrare nel programma grafico della classe Program, sistemare i file Program.cs:

    Utilizzo del sistema;
    vicorist System.Collections.Generic;
    utilizzando System.Linq;
    vicorist System.Threading.Compiti;
    utilizzando System.Windows.Forms;

    Spazio dei nomi HelloApp
    {
    Programma di classe statica
    {
    vuoto statico Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(nuovo Form1());
    }
    }
    }
    Il programma avvierà prima questa classe, quindi useremo Application.Run(new Form1()) per eseguire il form Form1 per assistenza. Se vogliamo modificare il modulo iniziale come aggiunta a un'altra classe, è necessario modificare Form1 in una classe diversa del modulo.

    Il modulo stesso è pieghevole dietro a zm_st. Vinto suddiviso in componenti bassi. Quindi, la struttura del progetto ha un file Form1.Designer.cs, che assomiglia a questo:

    Spazio dei nomi HelloApp
    {
    classe parziale Modulo1
    {
    ///


    /// Variabile di progettazione richiesta.
    ///

    ///


    /// Pulisci tutte le risorse utilizzate.
    ///

    /// true se le risorse gestite devono essere eliminate; altrimenti falso.

    {

    {
    componenti.dispose();
    }
    base.Dispose(smaltimento);
    }

    #region Codice generato da Designer Windows Form

    ///


    /// Metodo richiesto per il supporto di Designer: non modificare
    /// il contenuto di questo metodo con l'editor di codice.
    ///


    {
    this.SuspendLayout();
    // Modulo1



    this.Name = "Form1";
    this.Text = "Ciao mondo!";
    this.ResumeLayout(false);

    }
    }
    Qui la classe form Form1 viene smascherata, perché può avere due metodi: Dispose(), che assume il ruolo di distruttore dell'oggetto, e InitializeComponent(), che imposta i valori iniziali dei poteri del form.

    Quando si aggiungono elementi, ad esempio pulsanti, al file vengono aggiunte anche le loro descrizioni.

    Ma in pratica, raramente z_shtovhuvatimemosya con questa classe, perché la puzza vikonuє nelle principali funzioni di progettazione: l'installazione delle autorità degli oggetti, l'installazione delle modifiche.

    Un altro file - Form1.resx- Salva modulo risorse. Di norma, le risorse sono vittoriose per la creazione di forme a palazzo singolo contemporaneamente per un certo numero di colture moderne.

    І file importante - Form1.cs, che nella struttura del progetto viene chiamato semplicemente Form1, in sostituzione del codice o della logica di programma del form:

    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 pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    }
    }
    }
    Per la didascalia qui, c'è solo un costruttore di form, in cui viene semplicemente chiamato il metodo InitializeComponent(), c'è un file designer Form1.Designer.cs. Lo stesso vale per il file mi e più pracyuvatimemo.

  3. https://metanit.com/sharp/windowsforms/2.2.php

    Il predominio principale delle forme

    Per l'aiuto di una speciale finestra Proprietà (Potenza), Visual Studio per mancini ci offre una comoda interfaccia per gestire la potenza dell'elemento:

    La grandezza di questi poteri si riversa nella forma visiva. Andiamo dietro alle autorità principali:

    • Nome: impostalo sul form, più precisamente il nome della classe, che rientra nella classe Form
    • BackColor: indica il colore dello sfondo del form. Premendo sul potere del potere, possiamo scegliere il colore che ci si addice dall'elenco dei colori suggeriti o dalla tavolozza dei colori
    • BackgroundImage: visualizzazione sull'immagine di sfondo del modulo
    • BackgroundImageLayout: esegue il rendering come un'immagine, impostata nel potere BackgroundImage, da visualizzare nel modulo.
    • ControlBox: specifica se viene visualizzato il menu del modulo. A a questo particolare tipo sotto il menu si comprende il menu del livello più importante, dove si trovano l'icona del programma, il titolo del modulo, nonché il pulsante di minimizzazione, modulo che croce. Se il potere può essere falso, non abbiamo bisogno di icone, nessuna croce, per l'aiuto della quale suonerà il modulo
    • Cursore: imposta il tipo di cursore che viene digitato sul form
    • Abilitato: se l'alimentazione può essere impostata su false, non è possibile accettare l'immissione di testo, quindi non è possibile fare clic sui pulsanti, immettere testo nei campi di testo e così via.
    • Carattere: imposta il carattere per tutti i moduli e tutti i posti su di esso. Prote, dopo aver impostato il tuo font per gli elementi del modulo, possiamo ridefinire lo yoga
    • ForeColor: colore del carattere sul modulo
    • FormBorderStyle: specifica come visualizzare la riga di intestazione tra il modulo. È possibile creare il ripristino dell'alimentazione su Nessuno vecchio aspetto integratori di discreta forma
    • HelpButton: indica se è visualizzato il pulsante per la finalizzazione del form
    • Icona: imposta l'icona del modulo
    • Posizione: imposta la posizione relativa all'angolo in alto a sinistra dello schermo, in modo che la potenza StartPosition sia impostata su Manuale
    • MaximizeBox: specifica se sarà disponibile il pulsante Ingrandisci finestra nell'intestazione del modulo
    • MinimizeBox: specifica se sarà disponibile il pulsante di minimizzazione della finestra
    • MaximumSize: imposta la dimensione massima del modulo
    • MinimumSize: imposta la dimensione minima del modulo
    • Opacità: imposta la trasparenza del modulo
    • Dimensioni: scegli la forma della pannocchia
    • StartPosition: indica la posizione di partenza, quale form apparirà sullo schermo
    • Testo: imposta il titolo del modulo
    • TopMost: se la potenza può essere impostata su true, il modulo apparirà sempre sopra le altre finestre
    • Visibile: se il modulo è visibile, se vogliamo allegare il modulo al corystuvache, allora possiamo impostare questo potere su false
    • WindowState: specifica quale modulo deve essere riavviato all'avvio: Normale, Ingrandito o Ridotto
    Programmazione delle autorità
    Per aiutare l'importanza del potere nel potere del potere, possiamo cambiare l'aspetto formale della forma a nostro giudizio, e tutto ciò che possiamo creare dinamicamente nel codice. Passiamo al codice, per il quale facciamo clic con il tasto destro del mouse sul form e lo selezioniamo nel menu contestuale Visualizza codice. Abbiamo un file di codice davanti a noi Form1.cs. Cambia yoga in questo modo:

    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 pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    Testo = "Ciao mondo!";
    this.BackColor = Color.Aquamarine;
    questa.larghezza = 250;
    this.Height = 250;
    }
    }
    }

    In questo modo, abbiamo migliorato il kіlka del dominio nella forma: intestazione, colore di sfondo, larghezza e altezza. Quando si modifica il costruttore del modulo, è necessario verificare che il codice debba andare dopo la chiamata al metodo InitializeComponent(), quindi tutte le impostazioni di alimentazione qui vengono modificate nel metodo successivo.

    Moduli espansi installati
    Per impostare la dimensione del modulo, è possibile modificare la potenza come Larghezza/Altezza o Dimensione. Larghezza/Altezza prendono valori numerici, come un calcio appuntito. Quando si impostano le dimensioni tramite il potere Dimensione, è necessario assegnare il potere all'oggetto del tipo Dimensione:

    This.Size = Nuova taglia(200.150);
    L'oggetto Size viene riempito nel costruttore con un valore numerico per impostare la larghezza e l'altezza.

    Forme Pochatkove roztashuvannya
    Il più delle volte, la formazione del modulo viene ripristinata per potenza aggiuntiva StartPosition, poiché è possibile assumere uno dei seguenti valori:

    • Manuale: La posizione del modulo dipende dall'autorità della Sede
    • CenterScreen: la posizione del modulo al centro dello schermo
    • WindowsDefaultLocation: la posizione del modulo sullo schermo è determinata dal sistema Windows e la dimensione è determinata dalla potenza Dimensioni
    • WindowsDefaultBounds: la posizione iniziale e le dimensioni del modulo sullo schermo sono impostate dal sistema Windows
    • CenterParent: la posizione del modulo è impostata al centro della finestra di Batkivsky
    Tutti i valori vengono spostati nella casella FormStartPosition, quindi, ad esempio, metti il ​​modulo al centro dello schermo, dobbiamo scriverlo in questo modo:

    This.StartPosition = FormStartPosition.CenterScreen;
    Sfondo a forma di colori
    Per impostare il colore come sfondo del modulo, quindi per il font, dobbiamo evidenziare il valore del colore che è memorizzato nella struttura Colore:

    This.BackColor = Color.Aquamarine;
    this.ForeColor = Colore.Rosso;
    Inoltre, possiamo impostare lo sfondo dell'immagine sullo sfondo della BackgroundImage, disegnandolo nell'immagine delle autorità o del codice, indicando il percorso dell'immagine:

    This.BackgroundImage = Image.FromFile("C:\Utenti\Eugene\Immagini\3332.jpg");
    Per migliorare correttamente la nostra necessità di visualizzare l'immagine di sfondo, dobbiamo ottenere il potere di BackgroundImageLayout, quindi puoi prendere uno dei seguenti valori:

    • Nessuno: l'immagine si sposta nell'angolo superiore sinistro del modulo e salva il valore cob
    • Piastrella: l'immagine è posizionata sulla forma sotto forma di mosaico
    • Centro: immagine della cucitura al centro del modulo
    • Allunga: l'immagine si allunga senza mantenere le proporzioni
    • Zoom: l'immagine si espande per adattarsi alla forma per salvare le proporzioni
    Ad esempio, espandiamo la forma al centro dello schermo:

    This.StartPosition = FormStartPosition.CenterScreen;

  4. https://metanit.com/sharp/windowsforms/2.3.php

    Aggiunta di moduli. Interazione tra forme

    Per aggiungere un altro modulo al progetto, fare clic con il pulsante destro del mouse sul progetto nella finestra Esplora soluzioni e selezionare Aggiungi(Aggiungi)->Windows Form...

    Damo nuova forma yakes im'ya, per esempio, Form2.cs:

    Otzhe, il nostro progetto ha ricevuto forma da un amico. Ora proveremo a creare un'interazione tra due forme. Diciamo che il primo form viene premuto sul pulsante e l'altro form viene cliccato. Innanzitutto, aggiungi un pulsante al primo modulo Form1 e fai clic sul pulsante per passare al codice del file. Otzhe, possiamo usarlo come strumento per premere il pulsante, che si crea dietro la serratura dopo aver premuto il pulsante:


    {

    }
    Ora dodamo al nuovo codice wiki di un'altra forma. Abbiamo un altro form chiamato Form2, quindi creiamo un oggetto di questa classe, e quindi per questa visualizzazione sullo schermo facciamo clic sul metodo Show:

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    Form2 newForm = new Form2();
    newForm.Show();
    }
    Ora zrobimo navpaki: un'altra forma è rimasta nel pepe. Per il momento, l'altra forma non conosce le basi della prima. Per risolverlo, è necessario un altro modulo per trasferire le informazioni sul primo modulo. Per chi è più veloce trasferendo la richiesta nel form dal costruttore.

    Quindi, andiamo a un altro modulo e andiamo al codice її: fai clic con il pulsante destro del mouse sul modulo e seleziona Visualizza codice. Finché il vino è vuoto, non basta vendicarsi del costruttore. Oskіlki C# podtrimu metodi di riassociazione, possiamo creare alcuni metodi e costruttori parametri diversi che maggese nella situazione viklikati uno di loro. Di nuovo, cambia il file con il codice di un altro modulo per l'attacco:

    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 pubblica parziale Form2: Form
    {
    Modulo pubblico2()
    {
    InizializzaComponent();
    }

    Modulo pubblico2(Modulo1 f)
    {
    InizializzaComponent();
    f.BackColor = Colore.Giallo;
    }
    }
    }
    In effetti, i più piccoli hanno aggiunto qui un nuovo costruttore pubblico Form2(Form1 f), nel qual caso dobbiamo cambiare il modulo e impostarlo sullo stesso colore. Passiamo ora al codice del primo form, demi chiamò ad un amico il form di quel cambio yogo all'offensiva:

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    Form2 newForm = new Form2(questo);
    newForm.Show();
    }
    I frammenti in questo tipo di parola chiave rappresentano l'invio all'oggetto corrente: l'oggetto Form1, quindi quando viene creato un altro modulo, verrà rimosso dal primo modulo.

    Ora, dopo aver premuto sul pulsante, creeremo un form diverso, così da cambiare il colore del primo form.

    Possiamo anche creare oggetti che scorrono da:

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    Form1 newForm1 = nuovo Form1();
    nuovaForm1.Mostra();
    Form2 nuovaForm2 = nuova Form2(nuovaForm1);
    nuovaForm2.Mostra();
    }
    Quando si lavora con dekilcom, è necessario verificare con i moduli che uno di questi sia quello principale, poiché viene avviato prima nel file Program.cs. Non appena un mucchio di forme viene aperto in noi contemporaneamente, allora quando la testa è chiusa, l'intero programma viene chiuso e allo stesso tempo tutte le altre forme sono con esso.

  5. https://metanit.com/sharp/windowsforms/2.4.php

    Podії Windows Form. Invia moduli

    Per l'interazione con Windows Form, è presente un sottomeccanismo. I pod in Windows Forms rappresentano sottotitoli standard in C#, che si bloccano solo sui componenti visivi e sono ordinati in base alle stesse regole di C#. Ma ci sono ancora alcune particolarità nella creazione di Windows Forms.

    Per WinForms, esiste un set standard di input, alcuni dei migliori per tutti i componenti visivi. Okremі elementi aggiunge il loro podії, ma i principi del lavoro con loro saranno simili. Per guardare tutti i sottoelementi di un elemento, dobbiamo selezionare l'elemento dal campo grafico e andare alla sottoscheda nel pannello del modulo. Ad esempio, sottomoduli:

    Per aggiungere un esempio, puoi semplicemente fare clic sul campo vuoto con l'istruzione dal nome del sub, quindi Visual Studio genererà automaticamente il campione del sub. Ad esempio premere per la creazione di un campione per il sub Carica:

    Il campo Æ tse verrà visualizzato nominando il metodo del campionatore in Carica. Per le promozioni, il vino si chiama Form1_Load.

    Passiamo al file Form1.cs, generiamo automaticamente anche il metodo Form1_Load:


    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    }


    {

    }
    }
    І in caso di forma di entanglement dermico, utilizzare il codice nel modulo Form1_Load.

    Di norma, la maggior parte dei raccoglitori di vari componenti visivi ha due parametri: mittente - l'oggetto che ha avviato il sub, l'argomento che raccoglie informazioni sul sub (in questo EventArgs e).

    Ale tse lisher obrobnik. Per aggiungere una cartella di lavoro creata in un tale rango, passare attraverso il file Form1.Designer.cs:

    Spazio dei nomi HelloApp
    {
    classe parziale Modulo1
    {
    componenti System.ComponentModel.IContainer privati ​​= null;

    Protected override void Dispose (eliminazione bool)
    {
    if (eliminazione di && (componenti != null))
    {
    componenti.dispose();
    }
    base.Dispose(smaltimento);
    }
    private void InitializeComponent()
    {
    this.SuspendLayout();

    This.AutoScaleDimensions = New System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = Nuovo System.Drawing.Size(284, 261);
    this.Name = "Form1";
    // Aggiunta di un produttore di birra
    this.Load += Nuovo System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false);
    }
    }
    }
    Per aggiungere un quiz, viene utilizzata la sintassi C# standard: this.Load += System.EventHandler(this.Form1_Load)

    Pertanto, se vogliamo vedere le creazioni in modo simile, dobbiamo non solo vedere il metodo con il codice del modulo in Form1.cs, ma anche aggiungere il finder a questo file.

    Ad esempio, possiamo aggiungere i dettagli del sub e a livello di codice, ad esempio, nel costruttore del modulo:

    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 pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    this.Load += LoadEvent;
    }

    Private void Form1_Load(object sender, EventArgs e)
    {
    }

    Private void LoadEvent (mittente dell'oggetto, EventArgs e)
    {

    }
    }
    }
    Krim prima della cartella di lavoro Form1_Load creata, ecco anche l'aggiunta di un'altra cartella di lavoro del modulo: this.Load += LoadEvent;, che imposta un nuovo colore di sfondo.

  6. https://metanit.com/sharp/windowsforms/2.5.php

    Una creazione di forme rettangolari. Chiudi modulo

    Dietro il lucchetto, Windows Forms è semplice. Prote mi possiamo creare forme e indirettamente dovilni. Per chi si conquista il potere Regione. Poiché il significato di esso è l'oggetto della classe omonima regione.

    Quando le forme non rettangolari si scontrano, il suono, le interforme non vikorate, i frammenti del cordone sono dati dall'oggetto Regione. Per utilizzare tra i moduli, è necessario impostare l'autorizzazione FormBorderStyle del modulo su Nessuno.

    E un altro aspetto, che deve essere protetto, raggruppando in forme spostate, chiuse, massimizzando e minimizzando. Quindi in questo modo, come nella forma primaria, non possiamo premere sulla croce per chiudere la forma, non possiamo spostarla in un nuovo posto. Ecco perché è necessario designare per questa logica di programma.

    Otzhe, passiamo al codice del modulo e cambialo con il prossimo rango:

    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 pubblica parziale Form1: Form
    {
    Punto spostaInizio; // punta per muoverti

    Modulo pubblico1()
    {
    InizializzaComponent();
    this.FormBorderStyle = FormBorderStyle.None;
    this.BackColor = Color.Yellow;
    button1.Text = "Chiudi";
    }

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    this.Close();
    }

    Private void Form1_Load(object sender, EventArgs e)
    {
    System.Drawing.Drawing2D.GraphicsPath myPath = nuovo System.Drawing.Drawing2D.GraphicsPath();
    // crea un'ellisse con un'altezza e una larghezza del modulo
    myPath.AddEllipse(0, 0, this.Width, this.Height);
    // crea per l'aiuto elіpsu da quell'area, come vuoi bachiti
    Regione myRegion = nuova Regione(myPath);
    // Imposta l'area visibile
    this.Region = myRegion;
    }

    Private void Form1_MouseDown (mittente dell'oggetto, MouseEventArgs e)
    {

    se (es.Button == MouseButtons.Left)
    {
    moveStart = nuovo Punto(e.X, e.Y);
    }
    }

    Private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
    // viene premuto il pulsante sinistro del mouse
    if ((e.Button & MouseButtons.Left) != 0)
    {
    // prende un nuovo punto di posizione del modulo
    Punto deltaPos = nuovo Punto(e.X - moveStart.X, e.Y - moveStart.Y);
    // imposta la posizione del modulo
    this.Location = new Point(this.Location.X + deltaPos.X,
    this.Location.Y + deltaPos.Y);
    }
    }
    }
    }

    La creazione dell'area del modulo viene verificata nel sottoprogetto Form1_Load. Per la creazione dell'area viene disegnato un percorso grafico, un oggetto della classe System.Drawing.Drawing2D.GraphicsPath, a cui vengono aggiunti i puntini di sospensione. Il percorso grafico permette di creare una figura, sia essa una forma, che, se vogliamo una forma alla vista di una stella marina, allora è semplicemente necessario fissare il percorso grafico vittorioso con un grado proprio.

    Per chiudere il form nel form premendo il pulsante button1_Click, il form viene chiuso dal programma: this.Close()

    Per spostare il modulo, vengono elaborati due moduli secondari: premendo il pulsante del mouse e spostando il pulsante del mouse.

  7. https://metanit.com/sharp/windowsforms/3.1.php

    Contenitori in Windows Form

    Per l'organizzazione degli elementi di gestione del gruppo, è necessario utilizzare elementi speciali: contenitori. Ad esempio, Panel, FlowLayoutPanel, SplitContainer, GroupBox. Lo stesso modulo può essere trasportato nei container. La scelta dei contenitori è più leggera in termini di elementi, e anche nella forma di uno stile visivo canoro.

    Tutti i contenitori possono avere il potere dei controlli per vendicare qualsiasi elemento del contenitore. Se trasferiamo un elemento dalla barra degli strumenti a un contenitore, ad esempio un pulsante, verrà automaticamente aggiunto al contenitore della raccolta. In caso contrario, possiamo anche aggiungere l'elemento di cura in modo dinamico per il codice aggiuntivo della collezione.

    Aggiunta dinamica di elementi
    Aggiungi un pulsante dinamico al modulo. Per cui dodamo prenderò la forma dell'entanglement, in cui creerò un nuovo elemento di curatela. Puoi lavorare sia per il codice della guida che per il rango visivo.

    Trascinando gli elementi dalla barra degli strumenti, possiamo facilmente aggiungere nuovi elementi allo stampo. Tuttavia, in questo modo per completare l'ambiente circostante, i frammenti spesso devono creare (vedere) dinamicamente gli elementi sul modulo.

    Per l'aggiunta dinamica di elementi, creiamo un esempio del modulo di input per il codice del file:


    {
    }
    Ora aggiungi al nuovo codice per aggiungere un pulsante al modulo:

    Private void Form1_Load(object sender, EventArgs e)
    {


    helloButton.ForeColor = Color.DarkGray;
    helloButton.Location = NewPoint(10, 10);

    this.Controls.Add(helloButton);
    }
    Sul retro creiamo un pulsante che è installato in power. Quindi, utilizzando il metodo Controls.Add, lo aggiungiamo alla raccolta di elementi del modulo. Non abbiamo rotto lo yakby, non avremmo agitato il pulsante, semplicemente non ci siamo sognati di scheggiarci in alcun modo per la nostra forma.

    Per l'aiuto del metodo Controls.Remove(), puoi rimuovere l'elemento dal modulo prima di aggiungerlo:

    This.Controls.Remove(helloButton);

    Se desideri utilizzare un modulo in questo modo come contenitore, ma se aggiungi gli elementi aggiunti da un contenitore diverso, ad esempio GroupBox, vedrai gli stessi metodi.

  8. https://metanit.com/sharp/windowsforms/3.2.php

    Elementi GroupBox, Panel e FlowLayoutPanel

    GroupBox in un apposito contenitore, circondato da un cordone. Con l'intestazione principale, che viene installata tramite testo dell'autorità. Per generare un GroupBox senza titolo, come valore della potenza del Testo, viene semplicemente installata una riga vuota.

    Spesso questo elemento viene utilizzato per raggruppare le transizioni: elementi RadioButton, gli shard consentono di separare questi gruppi.

    L'elemento Panel rappresenta un pannello, come un GroupBox, che combina gli elementi in un gruppo. Può essere visivamente arrabbiato con una forma diversa, ma può anche avere un colore di sfondo che significa come BackColor, che è una forma. Quindi puoi vedere, puoi specificare un colore per l'elemento al cordone per ulteriore potenza BorderStyle, come per bloccare il significato di None, che è la differenza tra.

    Inoltre, poiché il pannello può avere molti elementi che vanno oltre il bordo, possiamo creare un pannello che scorre impostando la potenza di AutoScroll su true

    Come modulo, GroupBox e Panel possono contenere raccolte di elementi e possiamo anche aggiungere dinamicamente elementi ai contenitori. Ad esempio, nel form è presente un elemento GroupBox, che può essere groupBox1:

    Private void Form1_Load(object sender, EventArgs e)
    {
    Pulsante helloButton = NewButton();
    helloButton.BackColor = Color.LightGray;
    helloButton.ForeColor = Color.Red;
    helloButton.Location = nuovo elemento (30, 30);
    helloButton.Text = "Ciao";
    groupBox1.Controls.Add(helloButton);
    }
    Per inserire il layout dell'elemento nel contenitore, utilizzare la struttura Point: new Point(30, 30); che viene passata al costruttore lungo gli assi X e Y.

    Quando è necessario assicurarsi che il contenitore del livello superiore sia un modulo e che l'elemento groupBox1 stesso sia nella raccolta di elementi del modulo. Potevo vedere Yogo dietro il bazhannya:

    This.Controls.Remove(groupBox1);
    FlowLayoutPanel
    L'elemento FlowLayoutPanel si comprime nella classe Panel e quindi comprime tutta l'autorità. Tuttavia, aggiungendo funzionalità aggiuntive. Quindi, questo elemento consente di modificare la posizione e il layout degli elementi figlio all'ora del cambio dell'ora del cambio del modulo e all'ora della fine del programma.

    La potenza dell'elemento FlowDirection consente di impostarlo direttamente, in quale direzione elementi figlio. Dietro il lucchetto, il valore di LeftToRight - in modo che gli elementi vengano ruotati lentamente nella direzione del bordo superiore sinistro. Passi per andare a destra. Questo potere può assumere anche i seguenti significati:

    • RightToLeft: gli elementi vengono ruotati dall'angolo in alto a destra al lato sinistro
    • TopDown: gli elementi escono dall'angolo in alto a sinistra e scendono
    • BottomUp - gli elementi sono posizionati nell'angolo in basso a sinistra e vanno in salita

    Quando si posizionano gli elementi, un ruolo importante gioca il potere di WrapContents. Dietro le promozioni potrebbe essere vero. Ciò consente di trasferire elementi che non rientrano nel FlowLayoutPanel in una nuova riga o in una nuova pagina. Se il valore è False, gli elementi non vengono trasferiti e il contenitore viene semplicemente fatto scorrere, in modo che la potenza di AutoScroll sia vera.
  9. https://metanit.com/sharp/windowsforms/3.3.php

    TableLayoutPanel

    Anche l'elemento TableLayoutPanel esegue il rendering del pannello e può avere controlli figlio nella vista tabella, ma per l'elemento skin ha una propria stanza. Se vogliamo posizionare più di un elemento nella stanza, un altro componente TableLayoutPanel viene aggiunto alla stanza e altri elementi vengono inseriti in essa.

    Per stabilire il numero di righe nelle colonne delle tabelle, possiamo ovviamente vincere il potere di Righe e Colonne. Dopo aver selezionato uno di questi punti nella finestra Proprietà (Potenza), immaginiamo che il passo successivo sia impostare le colonne e le righe:

    Per il campo Tipo di dimensione, possiamo specificare la dimensione delle colonne/righe. Abbiamo tre possibili opzioni disponibili:

    • Assoluto: imposta la dimensione assoluta per le righe o le colonne per i pixel
    • Percentuale: la dimensione visiva viene visualizzata nelle finestre. Poiché è necessario creare un design gommato del modulo, in modo che le righe di schede, nonché gli elementi della digitazione al centro della tabella, vengano ridimensionati automaticamente quando si modificano le dimensioni del modulo, è necessario utilizzare l'opzione stessa
    • Dimensioni automatiche: l'altezza della riga e la larghezza della colonna vengono impostate automaticamente in base alla dimensione del più grande nella riga o nella colonna della colonna
    Possiamo anche combinare valori, ad esempio, una colonna può essere fissata con una larghezza assoluta e altre colonne possono modificare la larghezza di una larghezza.

    In questa finestra di dialogo, possiamo anche aggiungere o rimuovere righe e colonne. Allo stesso tempo, il grafico di Visual Studio non inizia a vedere le modifiche nelle tabelle - aggiungendo o aggiungendo righe e stowpt, modificando i loro layout, a questo, poiché le modifiche sul modulo non vengono accettate, è tenuto a chiudere e poi rinnovare il designer nella veste grafica.

    Inoltre, ad esempio, ho tre righe e tre righe di espansioni di tali somiglianze - 33,33%. È stato aggiunto un pulsante alla skin com_rku della tabella, in modo che Dock=Fill possa avere alimentazione.

    Se cambio le dimensioni del modulo, le righe e le colonne vengono ridimensionate automaticamente contemporaneamente inserendo i pulsanti al loro interno:

    Cosa fare manualmente per la creazione di interfacce scalabili.

    Possiamo modificare dinamicamente i valori delle colonne e delle righe del codice. Inoltre, tutte le colonne sono rappresentate dal tipo ColumnStyle e le righe dal tipo RowStyle:

    TableLayoutPanel1.RowStyles.SizeType = SizeType.Percent;
    tableLayoutPanel1.RowStyles.Height = 40;

    TableLayoutPanel1.ColumnStyles.SizeType = SizeType.Absolute;
    tableLayoutPanel1.ColumnStyles.Width = 50;
    Per impostare la dimensione in ColumnStyle e RowStyle, viene impostata la potenza di SizeType, in modo da impostare il valore della modifica di un nome di SizeType

    L'aggiunta di un elemento a un contenitore TableLayoutPanel ha le sue caratteristiche. Possiamo aggiungere lo yoga al centro libero offensivo, oppure possiamo mostrare il centro del tavolo in un ordine ovvio:

    Pulsante saveButton = NewButton();
    // aggiungi il pulsante al prossimo pomeriggio
    tableLayoutPanel1.Controls.Add(saveButton);
    // aggiungi un pulsante al commissario (2,2)
    tableLayoutPanel1.Controls.Add(saveButton, 2, 2);

    In questo modo, aggiungiamo un bottone all'armadio, che si deposita sulla terza fila e sulla terza fila. È vero, poiché non abbiamo molte righe e righe, il sistema selezionerà automaticamente il centro richiesto per l'aggiunta.

  10. https://metanit.com/sharp/windowsforms/3.4.php

    Espandere gli elementi e la loro posizione nel contenitore



    Posizione
    Per il controllo della skin, possiamo assegnare il potere di Posizione, come nell'assegnazione delle coordinate dell'angolo in alto a sinistra dell'elemento al contenitore. Quando si trasferisce un elemento dalla barra degli strumenti al modulo, l'autorizzazione viene ripristinata automaticamente. Ale potim a discrezione delle autorità, possiamo correggere manualmente le coordinate della posizione dell'elemento:

    Possiamo anche impostare la posizione dell'elemento nel codice:

    1
    2
    3
    4
    private void Form1_Load(mittente dell'oggetto, EventArgs e)
    {
    button1.Location = NewPoint(50, 50);
    }
    Installazione di espansioni
    Per ulteriore potenza di Size, puoi impostare la dimensione dell'elemento:

    Le aggiunte alla potenza di MaximumSize e MinimumSize consentono di impostare le dimensioni minime e massime.

    Poteri di impostazione per il codice:

    1
    2
    3
    4
    button1.Size = nuova dimensione (larghezza = 50, altezza = 25);
    // imposta i poteri dell'okremo
    pulsante1.Larghezza = 100;
    pulsante1.Altezza = 35;
    Ancora di potenza
    La capacità aggiunta di posizionare l'elemento tiene conto dell'importanza del potere dell'ancora. Il potere sta tra un lato dell'elemento e l'altro lato del contenitore. Se, quando lavoro con un contenitore, riesco a separarlo, allo stesso tempo estrarrà gli allegati dell'elemento.

    Dietro il blocco dell'elemento skin, che ne sai, il suo potere è più forte In alto, a sinistra:

    Tse significa che allungheremo il modulo a sinistra o in alto, quindi l'elemento verrà salvato da sinistra e il bordo superiore dell'elemento fino al bordo del contenitore, poiché apparirà il modulo.

    Possiamo impostare quanti più valori possibili per la potenza o la loro combinazione:

  11. Destra
  12. Ad esempio, quando cambiamo il significato dell'autorità sul protilezhne - In basso, a destra, avremo una posizione invariabile tra il lato destro e inferiore dell'elemento e la forma.

    Allo stesso tempo, è necessario designare che l'autorità è al sicuro nel mezzo del contenitore e non in forma. Quindi, dal momento che abbiamo un elemento Panel nel modulo e un pulsante è arruffato sul pannello, il pulsante dovrebbe essere sostituito da un cambiamento tra il pannello e non il modulo. L'espansione del modulo sarà al posto giusto per versare poco più di quanto verrà versato nel contenitore del pannello.

    Per impostare la potenza del codice, devi vincere la traduzione di AnchorStyles:

    1
    2
    3
    button1.Anchor = AnchorStyles.Left;
    // imposta la combinazione di valori
    button1.Anchor = AnchorStyles.Left | AnchorStyles.Top;
    Dock di alimentazione
    La potenza del Dock permette di agganciare un elemento al lato destro di un contenitore. Dietro il lucchetto, il valore è Nessuno, ma consente anche di impostare cinque valori:

  • Top: l'elemento viene spinto verso l'alto del contenitore
  • In basso: l'elemento viene premuto sul bordo inferiore del contenitore
  • Sinistra: l'elemento viene spinto sul lato sinistro del contenitore
  • Destra: l'elemento è agganciato al lato destro del contenitore
  • Riempi: l'elemento riempie l'intera area del contenitore
  • https://metanit.com/sharp/windowsforms/3.5.php

    Controllo a schede TabControl e SplitContainer



    TabControl

    L'elemento TabControl consente di creare un elemento keymap con più schede. І scheda skin salva un insieme di altri elementi di controllo, come pulsanti, campi di testo e int. La scheda skin è rappresentata dalla classe TabPagina.

    Per personalizzare le schede dell'elemento TabControl, usando il potere TabPages. Quando l'elemento TabControl viene trasferito dalla barra degli strumenti al modulo, vengono create due schede dietro il lucchetto: tabPage1 e tabPage2. Modifichiamolo per ulteriori TabPages di alimentazione:

    Abbiamo bisogno di modificare/aggiungere quella vista a schede:

    La scheda skin è una specie di pannello, quindi possiamo aggiungere altri elementi chiave e navigare nel titolo, in modo da poter navigare tra le schede. Il testo dell'intestazione viene impostato dopo il testo di aiuto.

    Curvatura con tab al codice
    Per aggiungere una nuova scheda, dobbiamo creare e aggiungere alla raccolta tabControl1.TabPages dietro il metodo Aggiungi:

    // aggiunta di una scheda
    TabPage newTabPage = new TabPage();
    newTabPage.Text = "Continente";
    tabControl1.TabPages.Add(newTabPage);
    La visione è così semplice:

    // Visualizza schede
    // dopo l'indice
    tabControl1.TabPages.RemoveAt(0);
    // per oggetto
    tabControl1.TabPages.Remove(newTabPage);
    Otrimuyu nella raccolta tabControl1.TabPages avrà bisogno di un indice di tabulazione, possiamo facilmente manipolare:

    // Cambio di autorità
    tabControl1.TabPages.Text = "Prima scheda";
    SplitContainer
    L'elemento SplitContainer consente di creare due pannelli divisori. Modificando la posizione dello splitter, è possibile modificare le dimensioni di questi pannelli.

    Victory power Orientamento, è possibile installare orizzontalmente o verticalmente nello splitter sul modulo. In questo caso, il potere di aumentare il valore di Horisontal e Vertical è evidente.

    Ad esempio, se è necessario modificare la posizione dello splitter, è possibile impostare la potenza di IsSplitterFixed su true. In questo ordine, lo splitter apparirà fisso e non possiamo cambiarne la posizione.

    Per le abbreviazioni, quando si espande la forma o il suono, viene modificata anche l'espansione di entrambi i pannelli dello splitcontainer. Tuttavia, possiamo fissare per un pannello una larghezza fissa (con orientamento verticale dello splitter) o un'altezza (con orientamento orizzontale dello splitter). Per cui è necessario impostare la potenza dell'elemento SplitContainer su FixedPanel. Poiché il significato del pannello viene riempito, è necessario correggerlo:

    Per modificare la posizione dello splitter nel codice, possiamo usare il potere SplitterDistance per impostare la posizione dello splitter in pixel dal bordo sinistro o superiore di SplitContainer. E per la potenza aggiuntiva di SplitterIncrement, puoi impostare un uncinetto su cui lo splitter si sposterà per un'ora e mezza per i tasti freccia aggiuntivi.

    Per allegare uno dei due pannelli, possiamo impostare la potenza di Panel1Collaps o Panel2Cllapsed su true

  • https://metanit.com/sharp/windowsforms/4.1.php

    Elementi keruvannya

    Elementi di controllo sulle classi visive, che possono tenere conto dell'input di dati e possono influenzare diverse suddivisioni. Tutti gli elementi di controllo stanno declinando nella classe di controllo e quindi potrebbero essere a bassa potenza:

    • Anchor: indica come viene tirato l'elemento
    • BackColor: imposta il colore di sfondo dell'elemento
    • BackgroundImage: Visualizza l'immagine di sfondo dell'elemento
    • ContextMenu: non è un menu contestuale, come mostrato quando si fa clic con il tasto destro del mouse sull'elemento. Chiedi aiuto per l'elemento ContextMenu
    • Cursore: specifica come appare il cursore del mouse quando si passa il mouse sopra un elemento
    • Dock: imposta il layout dell'elemento sul modulo
    • Abilitato: specifica se l'elemento sarà disponibile per il wiki. Se il valore è False, l'elemento è bloccato.
    • Carattere: imposta il carattere per il testo dell'elemento
    • ForeColor: imposta il colore del carattere
    • Posizione: mostra le coordinate dell'angolo in alto a sinistra dell'elemento chiave
    • Nome: Im'ya elemento keruvannya
    • Dimensione: mostra la dimensione dell'elemento
    • Larghezza: larghezza elemento
    • Altezza: altezza dell'elemento
    • TabIndex: specifica l'ordine in cui l'elemento deve essere attraversato premendo il tasto Tab
    • Tag: consente di salvare il valore associato a questo elemento di controllo
    Pulsante
    L'elemento di controllo più comune è il pulsante. Obroblyayuchi sotto la pressione del pulsante, possiamo lavorare quei chi inshі dії.

    Quando fai clic sul pulsante nel modulo nell'editor di Visual Studio, siamo bloccati sul codice del gestore dei clic Click, che verrà selezionato quando fai clic:

    Pulsante vuoto privato1_Click(mittente dell'oggetto, EventArgs e)
    {
    MessageBox.Show ("Hello World");
    }
    Decorazione a bottoni
    Per amare lo zvnіshnіshnіshnіshnіshnіmіbrannyam del pulsante, puoi vincere il potere stile piatto. Puoi assumere il seguente significato:

    • Piatto: il pulsante potrebbe sembrare piatto.
    • Popup - Il pulsante sembra grande quando ci si passa sopra, in altri modi sembra piatto
    • Standard - Pulsante per la massima visibilità (per il bloccaggio)
    • Sistema - Tipo di pulsante da depositare nel sistema operativo
    Immagine sul pulsante
    Per quanto riguarda gli elementi ricchi della chiave, per il pulsante è possibile impostare un'immagine per la BackgroundImage. Tuttavia, possiamo anche modificare la posizione del testo e dell'immagine sui pulsanti. Chi ha bisogno di vincere il potere di TextImageRelation. Vono nabuvaє significati avanzanti:
    • Sovrapposizione: il testo viene sovrapposto all'immagine
    • ImageAboveText: immagine sopra il testo
    • TextAboveImage: testo sopra l'immagine
    • ImageBeforeText: immagine prima del testo
    • TextBeforeImage: il testo viene posizionato prima delle immagini
    Ad esempio, per il pulsante immagine. Per quale selezioniamo il pulsante e si preme l'accensione sul campo Immagine (non allontanarsi dalla BackgroundImage). Ci viene presentata una finestra di dialogo per l'immagine da inserire:

    Seleziona l'opzione Risorsa locale e premi il pulsante Importa, dopodiché vedremo una finestra di dialogo per la selezione del file immagine.

    Se selezioni un'immagine, possiamo impostare la potenza di ImageAlign, poiché tiene conto della posizione dell'immagine sul pulsante:

    Abbiamo 9 opzioni disponibili, per l'aiuto possiamo allegare un'immagine al lato della canzone del pulsante. Lasciamo qui il significato dietro il lucchetto - MiddleCenter, che è posizionato al centro.

    Passiamo quindi alla potenza di TextImageRelation, che è impostata sul nuovo valore ImageBeforeText. Al risultato, togliamo il pulsante, de subito dopo che l'immagine è stata scritta sul pulsante:

    Chiavi accesso svedese
    Quando si lavora con i moduli, la tastiera verrà premuta manualmente con i tasti di accesso rapido. Premendo sulla tastiera, la combinazione di tasti At + lo stesso carattere, verrà chiamato lo stesso pulsante. Ad esempio, imposta per il pulsante corrente la potenza di Testo, che è buona &Avatar. Il primo segno - la e commerciale - indica quella lettera, come se fossi sollevato. A tsomu vipadku ha scritto bude look like a Avatar. io ora podio Cliccaè sufficiente per noi fare clic sulla combinazione di tasti Alt + A.

    Pulsanti di blocco
    Il modulo, su cui si trovano tutti gli elementi di controllo, ha il potere di riconoscere il pulsante come un lucchetto, quel pulsante viene cliccato.

    Ad esempio, la potenza del modulo AcceptButton ti consente di riconoscere un pulsante standard come un modo per gestire la pressione del tasto Invio.

    Allo stesso modo, viene esercitata la potenza del modulo CancelButton, poiché assegna un pulsante a sfioramento. Dopo aver assegnato un tale pulsante, possiamo fare clic su di esso premendo il tasto Esc.

  • https://metanit.com/sharp/windowsforms/4.2.php

    etichetta
    Per visualizzare sul form un testo semplice, accessibile solo in lettura, utilizzare l'elemento Etichetta. Per impostare il testo dell'etichetta, è necessario impostare la potenza dell'elemento Testo.

    Etichetta di collegamento
    Un tipo speciale di badge è rappresentato dagli elementi LinkLabel, che sono designati per la visualizzazione di messaggi, simili ai messaggi, posti su pagine web standard.

    • La potenza di ActiveLinkColor determina il colore della forza quando viene premuto
    • La potenza del LinkColor imposta il colore della forza prima dell'assalto, per il quale non ci sono ancora state transizioni
    • La potenza di VisitedLinkColor imposta il colore del messaggio, che è già la transizione
    Possiamo impostare la potenza del LinkBehavior per un dato elemento per specificare la potenza del LinkBehavior, di regola, il comportamento della richiesta. Il potere di Tsya acquisisce alcuni possibili significati:
    • SystemDefault: le impostazioni di sistema vengono installate per l'applicazione
    • Sempre Sottolineato
    • HoverUnderline: il messaggio compare solo quando si passa il mouse sopra
    • Mai Sottolineato
    A proposito, tutto il testo su questo elemento è rispettato dalle autorità. Tuttavia, per la potenza aggiuntiva della LinkArea, possiamo cambiare l'area del collegamento. Ad esempio, non vogliamo includere i primi sei caratteri. Per chi impostiamo il requisito di inizio:

    Per vikonate la transizione con la forza della pressione su di essa, è necessario scrivere il codice in aggiunta. Questo codice è responsabile dell'elaborazione del sub LinkClicked, come può essere l'elemento LinkLabel. Ad esempio, poniamo sulla form l'elemento della forza, che si chiama linkLabel1 e che serve a vendicare la forza:

    Classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    // imposta pod_obrobnik
    linkLabel1.LinkClicked += linkLabel1_LinkClicked;
    }

    Private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
    System.Diagnostics.Process.Start("http://metanit.com");
    }
    }
    Il metodo System.Diagnostics.Process.Start() viene richiesto dal browser Web, che viene installato nel sistema dal browser dietro una promozione.

  • https://metanit.com/sharp/windowsforms/4.3.php

    Casella di testo

    Per l'introduzione e la modifica del testo viene assegnato un campo di testo: l'elemento TextBox. Quindi, proprio come l'elemento Label, il testo dell'elemento TextBox può essere inserito o preso per ulteriore autorità Text.

    Per impostazione predefinita, quando si sposta un elemento dalla barra degli strumenti, viene creato un campo di testo. Per visualizzare un'ottima comunicazione nel campo di testo, è necessario evidenziare la potenza di Multiline e ScrollBars. Se l'autorizzazione multiriga è impostata su true, tutti i caratteri superflui che compaiono al di fuori dei campi verranno trasferiti alla nuova riga.

    Inoltre, puoi far scorrere il campo di testo impostando ScrollBars su uno dei seguenti valori:

    • Nessuno: nessuno scorrimento (nessuno scorrimento)
    • Orizzontale: crea uno scorrimento orizzontale quando la riga è piena, che sposta la larghezza del campo di testo
    • Verticale: crea lo scorrimento verticale in modo che le righe non si annidino nel campo di testo
    • Entrambi: scorrere verticalmente e orizzontalmente

    Campo di testo di completamento automatico
    L'elemento TextBox potrebbe essere in grado di creare un campo di completamento automatico. Per chi abbiamo bisogno di legare il potere AutoCompleteCustomSource dell'elemento TextBox a una raccolta specifica, per la quale vengono presi i campi indicati.

    Quindi, aggiungi un campo di testo al modulo e scrivilo nel codice per suddividere la riga successiva:

    Classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();
    sorgente AutoCompleteStringCollection = nuova AutoCompleteStringCollection()
    {
    "Kovaliv",
    "Іvaniv",
    "Petriv",
    "Kustiv"
    };
    textBox1.AutoCompleteCustomSource = sorgente;
    textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
    textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
    }
    }

    La modalità di completamento automatico, le rappresentazioni di potenza in modalità di completamento automatico, possono avere alcuni valori possibili:

    • Nessuno: completamento automatico consentito
    • Suggerisci: suggerisci opzioni per l'introduzione, ma non aggiungi
    • Aggiungi: aggiunge il valore alla riga nell'elenco, ma non supera l'opzione di selezione
    • SuggestAppend: un'ora e suggerisci le opzioni per il completamento automatico, che aggiungono il valore inserito
    Traduzione per parole
    In modo che il testo nell'elemento TextBox vada a capo dietro le parole, è necessario impostare l'autorità involucro di parole uguale vero. In modo che una parola non rientri in fila, ma venga trasferita all'offensiva. potere Tsia bude pratsyuvati meno per campi di testo variegati.

    Inserimento password
    Inoltre, questo elemento ha il potere di consentire di inserire un nuovo campo per l'inserimento di una password. Quindi, per cui devi hackerare PasswordChar e UseSystemPasswordChar.

    Il potere di PasswordChar non può essere bloccato, quindi se lo impostiamo su qualsiasi carattere, quel carattere verrà visualizzato quando viene inserito qualsiasi carattere nel campo di testo.

    La potenza di UseSystemPasswordChar può essere controllata. Se impostiamo questo valore su true, al posto dei caratteri inseriti nel campo di testo, verrà visualizzato il segno della password, accettata nel sistema, ad esempio un punto.

    Testo di Podiya modificato
    L'ultimo sub dell'elemento TextBox deve essere impostato sul sub TextChanged, che viene utilizzato quando si modifica il testo dell'elemento. Ad esempio, cambiamo l'etichetta sulla forma del campo di testo crim in modo che quando modifichi il testo nel campo di testo, cambi anche il testo sull'etichetta:

    Classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();

    TextBox1.TextChanged += textBox1_TextChanged;
    }

    Private void textBox1_TextChanged (mittente dell'oggetto, EventArgs e)
    {
    label1.Text = textBox1.Text;
    }
    }

  • https://metanit.com/sharp/windowsforms/4.4.php

    L'elemento MaskedTextBox

    L'elemento MaskedTextBox rappresenta veramente una normale casella di testo. Tuttavia, questo elemento consente di controllare l'introduzione di koristuvach e di ricontrollarlo automaticamente per la presenza di grazie.

    Per controllare i caratteri che vengono inseriti nei campi, è necessario impostare una maschera. Per creare una maschera, puoi ruotare i seguenti simboli:

    • 0: consente di inserire numeri extra
    • 9: Ti permette di inserire numeri e probіl
    • #: Ti permette di inserire numeri, probabili e segni "+" e "-"
    • L: consente di inserire caratteri letterali extra
    • ?: consente di inserire caratteri letterali non linguistici opzionali
    • R: Ti permette di inserire lettere e cifre
    • .: Imposta la posizione dello splitter del tutto e della parte dell'inquadratura.
    • ,: Vittoria per le sottorighe alla parte intera del numero.
    • :: Vikoristovuetsya a intervalli orari - anni di divisione, hvilini quel secondo
    • /: Vittoria per le date secondarie
    • $: strizza l'occhio come simbolo di valuta
    Per impostare la maschera, è necessario impostare la potenza dell'elemento Maschera. Conoscendo il potere delle Porperties, ne premeremo uno nuovo e lo immaginiamo per impostare uno dei modelli di maschera standard. Quindi, possiamo selezionare il numero di telefono, che è lo stesso inserito nella casella di testo, invece del numero di telefono:

    Ora, all'avvio, possiamo inserire più di un numero nel campo di testo, lasciando il numero di telefono.

    Adesso indossiamo la nostra maschera. Ad esempio, creiamo una maschera per inserire le iniziali del nome in base al nome del padre e il nome del vecchio nel campo di testo. Per chi pensi che il potere di Mask significhi L.L.L ?????????. Quindi la voce nel campo di testo sarà simile a questa:

    Questo elemento rappresenta anche una serie di autorità, che possono essere utilizzate per controllare l'introduzione. Quindi, il potere di BeepOnError quando è impostato su true dà bip p_d ora di immissione di un carattere errato.

    La potenza di HidePromptOnLeave quando è impostata su true quando viene immesso il campo di testo ha lo stato attivo impostato su PromptChar

    Il potere di PromptChar indica il carattere che appare nello spazio dei caratteri di input. Dietro il castello c'è un segno di rassicurazione.

    La potenza AsciiOnly, impostata su true, consente di inserire solo caratteri asci, come i caratteri compresi nell'intervallo A-Z e a-z.

  • https://metanit.com/sharp/windowsforms/4.5.php

    Elementi Radiobutton e CheckBox

    casella di controllo
    L'elemento CheckBox è un flag di assegnazioni per l'impostazione di uno dei due valori: selezionato o non impostato. Per impostare il guardiamarina, è necessario impostare l'autorità Checked su true.

    Limite di autorità verificato per l'elemento CheckBox - Autorità CheckState, che consente di impostare uno dei tre stati per il guardiamarina - Controllato (valori), Indeterminato (il guardiamarina di non assegnato - annotato o essere in uno stato inattivo) e Non selezionato ( non annotato)

    Inoltre, imposta l'autorità di AutoCheck: se può essere falso, non possiamo cambiare il guardiamarina. Dietro la promozione potrebbe essere vero.

    Al momento del cambiamento, diventerò la proporzione dei vini e genererò il sottodominio CheckedChanged. Obroblyayu tsyu podіyu, possiamo togliere le modifiche al guardiamarina e robiti sevni dії:

    Private void checkBox_CheckedChanged (mittente dell'oggetto, EventArgs e)
    {
    CheckBox checkBox = mittente (CheckBox); // Passa il mouse sulla guida su un elemento del tipo CheckBox
    se (checkBox.Checked == true)
    {
    MessageBox.Show("Ensign" + checkBox.Text + "ora impostato");
    }
    altro
    {
    MessageBox.Show("Ensign" + checkBox.Text + "nessun valore ora");
    }
    }
    pulsante di opzione
    Sull'elemento CheckBox è presente un elemento RadioButton simile o un ponticello. Gli interruttori sono disposti in gruppi e l'inclusione di un interruttore significa l'inclusione di una decisione.

    Per installare uno stordimento sul ponticello, devi prendere il potere Controllato vero.

    Per creare un gruppo di ponticelli, dal quale è possibile scegliere, è necessario posizionare un gruppo di ponticelli in un contenitore, ad esempio gli elementi GroupBox o Panel. Trasmettitori. ciò che è in contenitori diversi verrà aggiunto a gruppi diversi:

    In un rango simile, possiamo cambiare la permutazione nel gruppo, dando forma alla suddivisione CheckedChanged. Collegando il maglione in pelle del gruppo con un campione di questo podії, possiamo prendere quel maglione, che è una chiamata al momento dato:

    Private void radioButton_CheckedChanged(object sender, EventArgs e)
    {
    // Passa il mouse sulla guida all'elemento di tipo RadioButton
    RadioButton radioButton = mittente (RadioButton);
    se (radioButton.Checked)
    {
    MessageBox.Show("Hai selezionato" + radioButton.Text);
    }
    }

  • https://metanit.com/sharp/windowsforms/4.6.php

    casella di riepilogo

    L'elemento ListBox è semplicemente un elenco. Il potere chiave di questo elemento è il potere degli Oggetti, in modo che tu possa selezionare tutti gli elementi nell'elenco.

    Gli elementi possono essere aggiunti all'elenco non appena l'orario di apertura, quindi i programmaticamente. In Visual Studio, in Properties (Power) dell'elemento ListBox, possiamo conoscere la potenza degli Items. Dopo un rumore di metropolitana acceso, lo vediamo nella finestra per aggiungere gli elementi all'elenco:

    Per un campo vuoto, viene inserito un elemento dell'elenco, uno per riga di skin. Dopodiché, tutti gli elementi da noi aggiunti saranno nell'elenco e potremo gestirli:

    Selezione di elementi a livello di codice da un ListBox
    Aggiunta di elementi
    Otzhe, tutti gli elementi dell'elenco sono inclusi nel potere di Items, come una raccolta. Per aggiungere un nuovo elemento alla raccolta, ovvero all'elenco, è necessario selezionare il metodo Add, ad esempio: listBox1.Items.Add("Nuovo elemento"); Con l'aiuto di questo metodo, l'elemento skin, che viene aggiunto, viene aggiunto alla fine dell'elenco.

    È possibile aggiungere una spolverata di elementi, ad esempio un array. Per i quali viene utilizzato il metodo AddRange:

    Paesi stringa = ("Brasile", "Argentina", "Cile", "Uruguay", "Colombia");
    listBox1.Items.AddRange(paesi);
    Inserimento di elementi
    Nella vista di una semplice aggiunta, l'inserto viene posizionato dopo il primo indice dell'elenco dopo il metodo di aiuto Inserisci:

    ListBox1.Items.Insert(1, "Paraguay");
    In questa vista, inseriamo un elemento in una posizione diversa nell'elenco, in modo che la posizione data parta da zero.

    Vista degli elementi
    Per rimuovere un elemento dietro il testo, viene utilizzato il metodo Rimuovi:

    ListBox1.Items.Remove("Numeri");
    Per rimuovere l'elemento dietro l'indice nell'elenco, viene utilizzato il metodo RemoveAt:

    ListBox1.Items.RemoveAt(1);
    Inoltre, puoi cancellare l'intero elenco in una volta chiamando il metodo Clear:

    ListBox1.Items.Clear();
    Accesso agli elementi di un elenco
    Indice dell'elemento Vykoristovuyuchi, è possibile elemento nell'elenco. Ad esempio, prendi il primo elemento della lista:

    Stringa firstElement=listBox1.Items;
    Il metodo Count consente di assegnare il numero di elementi nell'elenco:

    Numero intero = listBox1.Items.Count();
    Visualizzazione degli elementi nell'elenco
    Quando gli elementi della lista sono visti, possiamo gestirli sia tramite l'indice, sia tramite l'elemento visto stesso. Puoi dare un'occhiata agli elementi con l'aiuto di tali poteri dell'elemento ListBox:

    • SelectedIndex: ruota o inserisce il numero della lista vista. Come vedere gli elementi della giornata, la stessa potenza può avere un valore -1
    • SelectedIndices: ruota o imposta la raccolta di elementi visibili sull'insieme di indici selezionato
    • Articolo selezionato: ruota o inserisce il testo dell'elemento visualizzato
    • SelectedItems: ruota o inserisce elementi visibili nella collezione selezionata
    Ricordiamo che l'elenco supporta l'avvistamento di un elemento. Per aggiungere la possibilità di vedere alcuni elementi, è necessario impostare il valore SelectionMode su MultiSimple nella sua potenza SelectionMode.

    Per visualizzare l'elemento a livello di codice, chiama il metodo SetSelected (int index, bool value), dove index è il numero dell'elemento visto. Se un altro parametro - valore può essere true, l'elemento dietro l'indice specificato è visibile, se è false, verrà visualizzato contemporaneamente:

    ListBox1.SetSelected(2, true); // vedrà il terzo elemento
    Per acquisire la vista degli elementi selezionati, viene utilizzato il metodo ClearSelected.

    Podiya SelectedIndexChanged
    L'elemento della casella di riepilogo deve avere una casella di riepilogo prima dell'elemento secondario SelectedIndexChanged, che è il risultato della modifica dell'elemento visualizzato:

    Classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();

    Paesi stringa = ("Brasile", "Argentina", "Cile", "Uruguay", "Colombia");
    listBox1.Items.AddRange(paesi);
    listBox1.SelectedIndexChanged += listBox1_SelectedIndexChanged;
    }

    Void listBox1_SelectedIndexChanged (mittente dell'oggetto, EventArgs e)
    {
    stringa Paese selezionato = listBox1.SelectedItem.ToString();
    MessageBox.Show (paese selezionato);
    }
    }
    Se scegli di selezionare un elemento, l'elenco dovrebbe essere rivisitato con l'elemento visibile.

    comboBox1.Items.AddRange(nuova stringa ("Uruguay", "Ecuador"));
    // Aggiunge un elemento per singola posizione
    comboBox1.Items.Insert(1, "Bolivia");
    Quando si aggiungono metodi Add/AddRange aggiuntivi, tutti i nuovi elementi vengono inseriti nell'elenco. Tuttavia, se impostiamo ComboBox su Power Ordinato uguale a true, l'ordinamento verrà eseguito automaticamente quando viene aggiunto.

    Vista degli elementi:

    // Eseguiamo il rendering di un elemento
    comboBox1.Items.Remove ("Argentina");
    // Visualizza l'elemento dopo l'indice
    comboBox1.Items.RemoveAt(1);
    // Visualizza tutti gli elementi
    comboBox1.Items.Clear();
    Possiamo prendere l'elemento dietro l'indice e lavorarci in modo diverso. Ad esempio, cambia yoga:

    ComboBox1.Items = "Paraguay";
    Personalizzazione del design del ComboBox
    Con l'aiuto della bassa potenza, puoi modificare lo stile del componente. Quindi, la potenza di DropDownWidth imposta la larghezza dell'elenco a discesa. Per la potenza aggiuntiva di DropDownHeight, puoi impostare l'altezza dell'elenco.

    Un altro potere di MaxDropDownItems ti consente di impostare il numero di elementi visibili nell'elenco, da 1 a 100. Per il blocco, il numero è 8.

    Più potenza DropDownStyle imposta lo stile del ComboBox. Puoi assumere tre possibili significati:

    • Dropdown: vinci per il lockdown. Possiamo inserire un elenco di opzioni che apparirà quando si inserisce un valore nel campo di testo, oppure cliccando sul pulsante con la freccia nella parte destra dell'elemento, e vedremo l'elenco in cui è possibile selezionare un possibile opzione
    • DropdownList: per far cadere l'elenco a tendina è necessario cliccare sul pulsante con la freccia a destra dell'elemento
    • Semplice: ComboBox è una semplice casella di testo in cui possiamo scorrere i tasti della tastiera su/giù per spostarci tra gli elementi.

    Podiya SelectedIndexChanged
    Il sub più importante per ComboBox è anche il sub SelectedIndexChanged, che consente di selezionare un elemento dall'elenco:

    Classe pubblica parziale Form1: Form
    {
    Modulo pubblico1()
    {
    InizializzaComponent();

    ComboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
    }

    Void comboBox1_SelectedIndexChanged (mittente dell'oggetto, EventArgs e)
    {
    stringaselectState = comboBox1.SelectedItem.ToString();
    MessageBox.Show(selectedState);
    }
    }
    Anche qui la potenza di SelectedItem è data all'elemento selezionato.

  • 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:

    1. Vikno Cassetta degli attrezzi(Pannello degli elementi di controllo) - elementi di controllo che puoi inserire nel modulo che viene creato.

    2. 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).

    3. Vikno vista di classe(Classe Vіkno) – qui puoi vedere tutte le creazioni della classe del programma.

    4. 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

    1. 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.
    2. Creiamo le funzioni di clattering sui tasti skin del mouse (soprattutto le cinghie del coristuvach, puoi comunque usare il pulsante " Così bello!»).
    3. 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.

    © 2022 androidas.ru - Tutto su Android