View Full Version : [VB2010] - Chiarimento Framework 3.5 & 4
lucausa75
21-12-2010, 13:44
Salve ragazzi,
ho creato una applicazione e la fase di progettazione la eseguo su due PC: PC-A e PC-B
Sul PC-A ho Win7 come impostazione di default per la compilazione ho il Framework 3.5:
http://img337.imageshack.us/img337/1549/85504270.th.jpg (http://img337.imageshack.us/i/85504270.jpg/)
mentre sul PC-B, che ha installato XP nonostante il progetto VB2010 in fase di progettazione sia stato creato col Framework 3.5, come impostazione di default per la compilazione ho il Framework 4:
http://img840.imageshack.us/img840/1069/14016138.th.jpg (http://img840.imageshack.us/i/14016138.jpg/)
Naturalmente aprendo il progetto nel PC-B e cercando di visualizzare il form mi vengono visualizzati i seguenti errori:
http://img148.imageshack.us/img148/2512/32966705.th.jpg (http://img148.imageshack.us/i/32966705.jpg/)
per cui sono ogni volta costretto a ricompilarlo col Framework 4:
http://img218.imageshack.us/img218/151/98146606.th.jpg (http://img218.imageshack.us/i/98146606.jpg/)
Mi chiedo, debbo installare il Framework 4 anche sul PC-A?
Non è chiaro se usi il medesimo IDE su PCA, PCB.
In ogni caso, perchè non compili tutto quanto in FW4.0 ?
lucausa75
21-12-2010, 19:25
Non è chiaro se usi il medesimo IDE su PCA, PCB.
In ogni caso, perchè non compili tutto quanto in FW4.0 ?
Forse ci sarà qualche problema sul mio Win7 perchè non riesco ad installare il FW4 o forse ho installato la versione errata.
Mi chiedo a questo punto esiste FW4 per Win7...? :confused:
Forse ci sarà qualche problema sul mio Win7 perchè non riesco ad installare il FW4 o forse ho installato la versione errata.
Mi chiedo a questo punto esiste FW4 per Win7...? :confused:
Assolutamente si :|
Esiste, viene installato con VS 2010.
Mi chiedo a questo punto esiste FW4 per Win7...? :confused:
E' una domanda... strana. :D
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=it
Guarda nei requisiti di sistema.
Se hai installato VS 2010 su Win7, perchè cerchi di reinstallare il FW4.0 ?! :stordita:
lucausa75
22-12-2010, 07:09
E' una domanda... strana. :D
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=it
Guarda nei requisiti di sistema.
Se hai installato VS 2010 su Win7, perchè cerchi di reinstallare il FW4.0 ?! :stordita:
...infatti è questa la cosa strana; come ti dicevo sopra nonostante lo abbia installato (lo si vede anche dal pannello dei programmi installati):
http://img130.imageshack.us/img130/2238/22122010080251.th.jpg (http://img130.imageshack.us/i/22122010080251.jpg/)
il FW4 non compare tra le opzioni di compilazione di VS2010:
http://img408.imageshack.us/img408/1580/immaginephb.th.png (http://img408.imageshack.us/i/immaginephb.png/)
:confused:
Prossimamente passerò a VS 2010, ma al momento non ho nè VS, nè Win7, perciò l'unica cosa a cui posso pensare è che tu abbia combinato qualcosa di strano in fase di setup... :mbe:
DioBrando
22-12-2010, 09:00
scusa ma perché sul PC-B non lo fai direttamente compilare con il 3.5?
per quanto riguarda l'installazione del framework fai attenzione alla localizzazione.
lucausa75
22-12-2010, 09:18
scusa ma perché sul PC-B non lo fai direttamente compilare con il 3.5?
Questo quello che accade appena apro il progetto compilato col FW 3.5:
http://img204.imageshack.us/img204/3910/immw.th.png (http://img204.imageshack.us/i/immw.png/)
Forse è dovuto al fatto che sul PC-B c'è anche il FW4?
per quanto riguarda l'installazione del framework fai attenzione alla localizzazione.
Cioè?
DioBrando
22-12-2010, 09:48
Questo quello che accade appena apro il progetto compilato col FW 3.5:
http://img204.imageshack.us/img204/3910/immw.th.png (http://img204.imageshack.us/i/immw.png/)
Forse è dovuto al fatto che sul PC-B c'è anche il FW4?
Non ho idea ma ti ripeto.
Non puoi impostare scusa la compilazione default con il 3.5 sul PC-B?
Prima di aprire il progetto, intendo proprio nei settings di VS2010.
Librerie ecc. sei a posto sì? Tipo l'Enterprise Library 5.0 ad esempio...
Cioè?
Se lo scarichi a mano e non della localizzazione del resto del software non te lo installa correttamente.
Vedendo però lo sshot è uguale a quello che ho io.
Oddio in realtà non vedo gli altri framework ma perché non li hai ordinati in ordine alfabetico
lucausa75
22-12-2010, 18:51
E' una domanda... strana. :D
http://www.microsoft.com/downloads/details.aspx?FamilyID=0a391abd-25c1-4fc0-919f-b21f31ab88b7&displaylang=it
Guarda nei requisiti di sistema.
Se hai installato VS 2010 su Win7, perchè cerchi di reinstallare il FW4.0 ?! :stordita:
Purtroppo ho controllato tra i programmi installati e FW4 risulta installato ma non riesco a visualizzarlo tra le opzioni di compilazione :confused:
lucausa75
22-12-2010, 20:17
Purtroppo ho controllato tra i programmi installati e FW4 risulta installato ma non riesco a visualizzarlo tra le opzioni di compilazione :confused:
oops, ho provato a reinstallare VS2010 e adesso il FW4 è regolarmente visualizzato tra le opzioni di compilazione :confused:
C'è un problema però;
il seguente codice che funzionava perfettamente col FW 3.5 e serve a disabilitare la X dai form adesso col FW 4 non funziona; c'è qualche alternativa o stralcio di codice ad hoc?
Private Const MF_BYPOSITION = &H400
Private Const MF_REMOVE = &H1000
Private Const MF_DISABLED = &H2
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Long) As IntPtr
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As IntPtr) As Integer
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As IntPtr) As Boolean
Public Sub DisableCloseButton(ByVal hwnd As IntPtr)
Dim hMenu As IntPtr
Dim menuItemCount As Integer
hMenu = GetSystemMenu(hwnd, False)
menuItemCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, menuItemCount - 1, MF_DISABLED Or MF_BYPOSITION)
Call RemoveMenu(hMenu, menuItemCount - 2, MF_DISABLED Or MF_BYPOSITION)
Call DrawMenuBar(hwnd)
End Sub
lucausa75
22-12-2010, 20:32
Trovata:
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_DBLCLKS As Int32 = &H8
Const CS_NOCLOSE As Int32 = &H200
cp.ClassStyle = CS_DBLCLKS Or CS_NOCLOSE
Return cp
End Get
End Property
basta metterla all'inizio subito dopo:
Public Class Form1
Scusa, potresti essere più preciso ?
Cosa intendi esattamente per "disabilitare la X dei Form" ?
lucausa75
23-12-2010, 06:44
Scusa, potresti essere più preciso ?
Cosa intendi esattamente per "disabilitare la X dei Form" ?
...ma questa domanda da te non me la sarei mai aspettata :D
Intendevo dire dire disabilitare la X di chiusura dei form:
http://img822.imageshack.us/img822/6964/immaginemq.th.png (http://img822.imageshack.us/i/immaginemq.png/)
:D
lucausa75
23-12-2010, 06:45
...invece vorrei capire l'utilità di questa opzione:
http://img156.imageshack.us/img156/1163/22122010185717.th.jpg (http://img156.imageshack.us/i/22122010185717.jpg/)
E' necessario impostarla a True o False?
...ma questa domanda da te non me la sarei mai aspettata :D
Intendevo dire dire disabilitare la X di chiusura dei form:
Lo so, sembra una domanda stupida... Ma non lo è. ;)
Non volevo crederci, ma alla fine è proprio quello lo scopo ! :doh: :p
Il codice ai post #12 e #13 ricorda molto un modo di pensare e agire alla VB6.
Addirittura 4 chiamate API, e perfino istruzioni Call per disabilitare il button X ! :nono:
Disabilitare il Button X in VB.NET si fa con UNA riga di codice, nell'evento FormClosing() :
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
End Sub
Questo rende la Form impossibile da chiudere con qualsiasi azione da parte dell'utente.
Adesso ipotizziamo di volerla chiudere da codice, o da un nostro pulsante, che abilitiamo solo in particolari condizioni :
Private Sub cmd_chiudi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_chiudi.Click
Me.Dispose()
End Sub
E abbiamo finito.
Come ben sai .Dispose() bypassa gli eventi FormClosing() e FormClosed().
Chiamate API, CreateParams e strane costanti non sono assolutamente necessarie. ;)
lucausa75
23-12-2010, 08:55
Disabilitare il Button X in VB.NET si fa con UNA riga di codice, nell'evento FormClosing() :
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
End Sub
Questo rende la Form impossibile da chiudere con qualsiasi azione da parte dell'utente.
OK questo è corretto ma la X non risulta essere disabilitata e a me interessa proprio questo :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.