Vb.net apertura form

mercoledì 28 giugno 2006 - 16.30

Semerket Profilo | Newbie

Ciao a tutti vado subito al problema:
Ho una tabella che contiene il nome del form da
aprire. Carico questi dati in una listview.
Vorrei che quando clicco sull'elemento che mi serve
si apra il form corrispondente.

Spero di essere stato chiaro.

Grazie a chiunque mi risponderà.
Un Saluto di Luce a tutti!

blood Profilo | Senior Member

>Ciao a tutti vado subito al problema:
>Ho una tabella che contiene il nome del form da
>aprire. Carico questi dati in una listview.
>Vorrei che quando clicco sull'elemento che mi serve
>si apra il form corrispondente.
>
>Spero di essere stato chiaro.
>
>Grazie a chiunque mi risponderà.
>Un Saluto di Luce a tutti!

Innanzitutto devi dichiararti degli oggetti form, li inizializzi con le form che vuoi (devono essere presenti nel progetto, e se non aggiungerli come References); dopodichè o metti un Select Case, oppure un ciclo di If che ad ogni indice apre una form:

If Me.ListView1.Items(Indice).Selected = True Then Dim f as New Nome_form f.BringToFront() f.StartPosition = FormStartPosition.CenterScreen f.showdialog() End if

Dove indice sarà la posizione del tuo oggetto nella ListView...

ps. ah ho visto ora che devi ricavartelo da una tabella...se così fosse, ti fai una semplice select con DataReader che a seconda del nome che ti torna, apri una form differente


---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

Semerket Profilo | Newbie


>Innanzitutto devi dichiararti degli oggetti form, li inizializzi
>con le form che vuoi (devono essere presenti nel progetto, e
>se non aggiungerli come References); dopodichè o metti un Select
>Case, oppure un ciclo di If che ad ogni indice apre una form:
>
>
>If Me.ListView1.Items(Indice).Selected = True Then
>
>Dim f as New Nome_form
>f.BringToFront()
>f.StartPosition = FormStartPosition.CenterScreen
>f.showdialog()
>
>End if
>
>
>Dove indice sarà la posizione del tuo oggetto nella ListView...
>
>ps. ah ho visto ora che devi ricavartelo da una tabella...se
>così fosse, ti fai una semplice select con DataReader che a seconda
>del nome che ti torna, apri una form differente
>
>
>---------------
>Piscopo Paolo
>

Grazie per la tua risposta.
Il mio caso è proprio quello di ricavare il nome da una tabella ed
aprire il form che ha quel nome.
Ti sarei grato se potessi illustrarmi come fare o come ricercare
un esempio su internet.


Un Saluto di Luce a tutti!

blood Profilo | Senior Member

allora potresti crearti una tabella contenente ID e DESCRIZIONE della form.

cmq mi correggo ho visto che era una falsa soluzione la soluzione corretta sarebbe cosi:

If Me.ListView1.Items.Item(Indice).Focused = True

dopodichè fai la select:

Dim cmd As SqlClient.SqlCommand
Dim sql as String
Dim cnAs SqlClient.SqlConnection
Dim dr As SqlClient.SqlDataReader

sql = "SELECT ID FROM TABELLA " & _
"WHERE ID = " & Me.ListView1.Items.Item(1).Text

cn = New SqlClient.SqlConnection(stringa_connessione)
cn.Open()

cmd = New SqlClient.SqlCommand(sql, cn)
dr = cmd.ExecuteScalar

If dr.read Then
// Trovato l'indice della form
Dim num as Decimal
num = cmd.ExecuteScalar
End If

Dopodiche farai un Select case che ad ogni ID della tabella corrisponderà l'indice della ListView (quindi dovranno essere ordinati e posti ugualmente, anzi a questo punto potresti direttamente anche nella funzione Add() della listview aggiungerli tramite DB.

Se non hai capito bene come utilizzare dei command personalizzati, dai un occhiata sul forum agli articoli sull'ADO.NET , ciao

---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)

Semerket Profilo | Newbie

Non è che si potrebbe avere un esempio?

Grazie Tante



Un Saluto di Luce a tutti!

alextyx Profilo | Expert

Premesso che forse la soluzione con il select case è quella migliore, qualora ti servisse una prestazione diversa (utile in casi particolari), ti segnalo questo link:

http://www.vbforums.com/showthread.php?s=&threadid=291544

blood Profilo | Senior Member

>Non è che si potrebbe avere un esempio?
>
>Grazie Tante
>

scusa piu esempio di cosi? comunque ti ho detto nella sezione articoli cerchi ADO.NET e trovi tutti gli esempi che vuoi...

---------------
Piscopo Paolo

:: wD @ IRCnet :: .NET wannabe 8-)
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5