Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Chiusura Applicazione in c#
Forum - C# / VB.NET - Chiusura Applicazione in c# - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
alip1 (Normal User)
Pro


Messaggi: 139
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 11:49
Martedì, 11/07/2023
Testo quotato

Postato originariamente da Carlo:

Testo quotato

Postato originariamente da alip1:
Io pensavo (come in VB) di poter dichiarare in un modulo  .cs una serie di routine (funzioni o meno) pubbliche da poter richiamare per poter fare delle cose prima di lanciare il form principale di apertura...



Si può fare con le variabili statiche (static) che sono visibili in tutti i form.
Ti sconsiglio di usare tale pratica in C# perché ti perdi tutti i vantaggi delle classi. Una classe è riutilizzabile in più forms e routine e le variabili entro contenute resteranno valide solo per le istanze scelte.

Nel tuo caso semplicemente ti devi creare un form aggiuntivo con tutto quello che ti serve per fare login, scelta db ecc. ecc.
Il form2 lo istanzierai e renderai visibile prima del form1...

Ho già aiutato un utente per un motivo simile e ho ancora l'esempio che gli postai, te lo allego.


Non fa quello che ti serve ma una volta capito non ti dovrebbe restare difficile fare quello che ti sei prefisso.
Prova e chiedi.



Grazie Carlo.

Un'ultima cosa ma se le variabili di carattere generale (public) le metto in una classe ovviamente ogni volta che me ne serve qualcuna devo istanziare la classe ma avrò le variabili ogni volta da resettare... invece io pensavo di definirle public, settarle e poi poterle utilizzare là dove mi serve (in VB fare così è molto banale e pensavo di fare la stessa cosa in c#). Se in c# le dichiaro static public .. le potrò poi utilizzare ovunque?? la stessa regola varrebbe per qualsiasi routine public, oppure no??
Grazie

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2329
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:39
Martedì, 11/07/2023
ma scusa non vedo il problema dove sta nell'usare una classe per contenere deterinate funzioni
o variabili.

che puoi tranquillamente passare la classe ad un altro form.

Altra cosa che puoi fare rendere la classe del form parziale in modo che quando crei una nuovo file cs esempio,
proprio come ti ha mostrato carlo

Esempio

Foglio1.cs
Codice sorgente - presumibilmente C# / VB.NET

  1. public partial class frmMain : Form
  2.     {
  3.  
  4.  
  5. }




Foglio2.cs
Codice sorgente - presumibilmente C# / VB.NET

  1. public partial class frmMain : Form
  2.     {
  3.  
  4. }



Ricopi la stessa intestazione della classe parziale nell'altro foglio ed hai accesso agli stessi membri.
La cosa che fa il vb.net ovvero shared form la si fa in partial class in c#.
semplice.

oppure fai prima a mostrare semplicemente quello che è così banale fatto in vb.net
e te lo scriviamo in C#.
Almeno riusciamo a capire quello che stai cercando.

Ultima modifica effettuata da Thejuster il 11/07/2023 alle 12:41


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:18
Martedì, 11/07/2023
Nel progetto Windows Form a che ti serve modificare il Main?

Una volta che avvii il Form1 (o quello di avvio), se lo chiudi, l'applicazione termina

Non capisco cosa tu voglia fare

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1384
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 14:36
Martedì, 11/07/2023
Testo quotato

Postato originariamente da alip1:

Un'ultima cosa ma se le variabili di carattere generale (public) le metto in una classe ovviamente ogni volta che me ne serve qualcuna devo istanziare la classe ma avrò le variabili ogni volta da resettare... invece io pensavo di definirle public, settarle e poi poterle utilizzare là dove mi serve (in VB fare così è molto banale e pensavo di fare la stessa cosa in c#). Se in c# le dichiaro static public .. le potrò poi utilizzare ovunque?? la stessa regola varrebbe per qualsiasi routine public, oppure no??
Grazie



le variabili public come le intendi tu pensando a VB, in C# si chiamano static. Le variabili e le routine public in C# all'interno di una classe significa che saranno esposte quando si istanzia la classe stessa.

le variabili all'interno di una classe sono sempre nuove ogni volta che la istanzi, non devi resettare nulla. E' proprio la forza della classe. La stessa classe la puoi usare istanziandola con nomi diversi ed ogni istanza mantiene i propri valori. Con il modulo non hai nessun vantaggio programmatorio, se sposti tutto il codice dal modulo al programma principale tutto funziona come prima. L'unico vantaggio del modulo è che il codice risiede su un file distinto che viene visualizzato su una pagina distinta, il vantaggio è solamente visivo. Nulla a che vedere con una classe.

Prova a scrivere qualcosa per raggiungere il tuo scopo partendo dagli esempi chi ti abbiamo fatto, se non riesci, come ti ha già anticipato Thejuster, dicci cosa vuoi ottenere in modo più dettagliato e ti scriviamo un esempio.

Non ti scoraggiare quello che stai affrontando è un problema che assilla tutti i programmatori che passano da VB a C#, capìti i concetti base tutto è in discesa.

Devo anche aggiungere che VB fino ad ora, applicando degli automatismi, ti ha nascosto un parte della programmazione che invece è fondamentale per padroneggiare senza errori e ambiguità un linguaggio.

Ultima modifica effettuata da Carlo il 12/07/2023 alle 20:36


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2329
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 17:17
Mercoledì, 12/07/2023
Esatto.

Concordo con carlo.
La prima volta che passai da vb a c# trovai proprio difficoltà nel capire le differenze proprio tra le classi e piccole cose banali.

Però, ad oggi mi ritengo fortunato di averlo fatto e di averci speso nottate in bianco sopra ad imparare.
Adesso esempio non ricordo nemmeno più come si programma in vb.net

perché una volta capito le potenzialità del C# reputi il vb.net come un giochino.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1384
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 21:54
Mercoledì, 12/07/2023
Testo quotato

Postato originariamente da Thejuster:
perché una volta capito le potenzialità del C# reputi il vb.net come un giochino.



VB .Net non era un giochino, TUTTO quello che potevi fare con C# lo potevi fare con VB.
Ora VB è rimasto indietro perché non è più stato aggiornato e con i nuovi FrameWork e le nuove istruzioni presenti in C#, non c'è più storia.

Se si vuole programmare in VB.Net con le classi, ereditarietà e conversioni esplicite si può fare.

@alip1
Prova ad inserire all'inizio dei tuoi codici VB.Net l'istruzione:

Option Strict On

Scoprirai che VB.Net si è incaricato al posto tuo di:
1) convertire i tipi
2) risolvere le associazioni tardive
3) risolvere le assegnazioni incompatibili

Infatti con: Option Strict On, il compilatore lascia a te questi compiti, troverai una serie di errori che difficilmente saprai risolvere senza studiare. In C#, Option Strict On è attivo di default e non si può togliere.

Ma ripeto non ti scoraggiare...
Come incentivo ti allego un esempio in C# che prima di avviarsi ti chiede l'Utente: admin, la Password: 0000 o altri, vedi elenco e il percorso del database da usare.
Spero che ti sia utile per adattarlo alle tue esigenze.
L'ho scritto in stile VB.Net, si potrebbero usare altre molteplici soluzioni.


Carlo ha allegato un file: Login.zip (20957 bytes)
Clicca qui per scaricare il file

Ultima modifica effettuata da Carlo il 13/07/2023 alle 15:25


in programmazione tutto è permesso
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2329
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:44
Venerdì, 14/07/2023
Infatti carlo parlo di ora.
Anche io ho iniziato con VB.net

Ma non c'è proprio paragone tra i due.

Il VB come python e simili sono più adatti come linguaggio di scripting.

Se proprio si vuole usare il vb.net va bene per progettini da autodidatta, cose insomma un po' per imparare, un po' per giocare.

Ma se si vuole andare sul professionale,
C++,C#,Java.

Metto Java all'ultimo posto perché dopo averlo sperimentato e scoperto che non esistono le strutture
Questa cosa mi ha deluso un po' .
Non parlando poi della serializzazione...



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
alip1 (Normal User)
Pro


Messaggi: 139
Iscritto: 12/08/2019

Segnala al moderatore
Postato alle 18:14
Venerdì, 14/07/2023
Grazie a tutti .... soprattutto per i consigli e gli esempi che mi sono stati forniti...

Anche nello sviluppare la mia Applicazione (windows Form) è pressoché tutta sviluppata con moduli di classe...
ma come partenza ho un modulo di variabili definite public che vengono settate per lo più alla partenza leggendo i relativi valori o da sistema (cartella dell'applicazione... cartella specifica in appdata dell'utente window... o leggendo i dati da alcuni file che hanno una struttura tipo file.ini...
Ovviamente il tutto concordato con il committente (un IT che gestirà le autorizzazioni dei pc e l'accesso al db SQL).

Le funzioni di lettura o scrittura (aggiornamento) dei dati sono tutte funzioni o sub routine di tipo PUBLIC SHARE contenute nelle relative classi.

Ho inoltro una classe con le proprietà dell'utente e relative funzioni tutte contenute in oggetto che avrei necessità di dichiararlo e inizializzarlo una volta sola alla partenza dell'applicazione una volta confermato ed autorizzato l'accesso e l'uso.

Queste possibilità non so come defirle in C# ... proverò ad usare le dichiarazioni static...  
Intanto grazie

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo