Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    117

    [VB.NET] Aprire un form solo la prima volta che si apre il programma

    Come da titolo, voglio che un form si apri solo la prima volta che si utilizzi il programma... In modo che alla prossima apertura del programma il form non si apri più... che code bisogna usare?

    grazie in anticipo!
    MSN - Messanger è fallito

  2. #2
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Beh potresti crearti un xml dove di memorizzi un flag che a seconda del suo valore invoca o meno l'apertura del form o, se tale apertura è legata da un particolare dato presente sul tuo db (ad esempio la presenza o meno di una licenza d'uso).

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    117
    ook.. mi spieghi la procedura come creare un xml e far in modo chead esempio il form6 si apra solo la prima volta..?

    grazie!
    MSN - Messanger è fallito

  4. #4
    Utente di HTML.it L'avatar di Joe Taras
    Registrato dal
    Nov 2003
    residenza
    Taranto
    Messaggi
    955
    Il file te lo crei a prescindere, metti che si chiama ciccio.xml (può anche essere un txt o quello che meglio credi).
    Supponiamo che sia un XML del genere

    <setting>
    <apriform>Y</apriform>
    </setting>

    Nel codice che hai scritto immagino ad un certo punto avrai form.Show() oppure form.ShowDialog().

    Questa riga di comando la condizioni al valore di <apriform>.

    Al primo accesso in assoluto, quindi se apriform vale Y al termine lo cambi in N, quindi per le volte successive non aprirai più il tuo form.

  5. #5
    Potresti anche utilizzare una voce di registro utilizzando un valore come flag..

    Ecco un esempio per inserire informazioni nel registro di windows

    http://forum.html.it/forum/showthread/t-1126922.html

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    117
    ma in particolare non ho capito come fare per aggiungere il file xml e far in modo che il form si visualizzi solo la prima volta che si utilizza il programma... non c'è un modo più semplice ? qualche codice che dica che il form si apre solo alla prima visualizzazione del programma...
    MSN - Messanger è fallito

  7. #7
    Prova ad inserire un valore nel registro e a verificarlo ogni volta che apri il software.... tipo:

    codice:
    Imports Microsoft.Win32
    Imports System.Runtime.InteropServices
    
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
    
            Dim RegKey As RegistryKey
    
            'controlla se la voce del registro esiste e se non esiste entra dentro IF
            If My.Computer.Registry.CurrentUser.CreateSubKey("Software\nomedelmioprogramma").GetValue("valore", Nothing) Is Nothing Then
                Form2.Show() ' apri la finestra che desideri
                ' aggiungi il valore nel registro che la finestra è stata visualizzata
                ' se vuoi queste stringhe sotto li puoi inserire direttamente nel load del form2
                RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE", True).CreateSubKey("nomedelmioprogramma")
                Registry.CurrentUser.OpenSubKey("Software", True).OpenSubKey("nomedelmioprogramma", True).SetValue("valore", "1")
            End If
    
    
    
    
    
    
    
    
        End Sub
    End Class
    Questo è un metodo veloce e funzionale..


    Se desideri cancellare la voce nel registro per fare dei test, ecco il codice da inserire in un pulsante per cancellare la voce appena creata e rifar aprire il form2

    codice:
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE", True).CreateSubKey("menuwow")
            Registry.CurrentUser.OpenSubKey("Software", True).OpenSubKey("nomedelmioprogramma", True).DeleteValue("valore")
    Application.Restart()
             End Sub
    Spero ti sia stato d'aiuto

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Multivelox
    ma in particolare non ho capito come fare per aggiungere il file xml e far in modo che il form si visualizzi solo la prima volta che si utilizza il programma... non c'è un modo più semplice ? qualche codice che dica che il form si apre solo alla prima visualizzazione del programma...
    Prima di tutto è bene tener presente che Microsoft sconsiglia l'uso del Registro di Windows per le proprie impostazioni.

    Il modo più semplice è usare i Settings:

    1. Vai sulle proprietà del progetto, e seleziona la scheda Impostazioni .
    2. qui inserisci la tua impostazione, ad esempio, nell'ordine:
    - Nome: MostraFinestra
    - Tipo: Boolean
    - Ambito: Utente
    - Valore: True
    Poi salva.

    3. Ora vai nel codice da cui avvi l'applicazione ed inserisci:
    codice:
            If My.Settings.MostraFinestra Then
                ' codice che carica il tuo form
            End If
    4. Una volta avviata l'applicazione, per non mostrare più la finestra
    codice:
            My.Settings.MostraFinestra = False
            My.Settings.Save()

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    117
    ok... io ho inserito nel primo form:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    My.Settings.MostraFinestra = False
    My.Settings.Save()

    If My.Settings.MostraFinestra Then
    Form61.Show()
    End If
    End Sub


    e nel form 61 non ho scritto una riga di codice... ma nn funge eppure sono andato nelle impostazioni delle proprietà come mi hai detto.. come mai?
    MSN - Messanger è fallito

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perchè come l'hai messo tu, il codice è al contrario, quindi sbagliato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.