Oppure

Loading
11/07 9:38
alip1
Postato originariamente da nessuno:

Ma esattamente che tipo di progetto hai creato?

Console o Windows Form?


Windows Form
aaa
11/07 9:49
alip1
Postato originariamente da Carlo:

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
aaa
11/07 10:39
Thejuster
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

public partial class frmMain : Form
    {


}




Foglio2.cs

public partial class frmMain : Form
    {

}



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 11/07 10:41
mire.forumfree.it/ - Mire Engine
C# UI Designer
11/07 11:18
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
11/07 12:36
Carlo
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 12/07 18:36
in programmazione tutto è permesso
12/07 15:17
Thejuster
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.
mire.forumfree.it/ - Mire Engine
C# UI Designer
12/07 19:54
Carlo
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.
Ultima modifica effettuata da Carlo 13/07 13:25
in programmazione tutto è permesso
14/07 13:44
Thejuster
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...

mire.forumfree.it/ - Mire Engine
C# UI Designer