10/02/09 13:40
Henry 128
Però come si può bloccare il tasto chiudi spuntando una CheckBox e viceversa?
aaa
10/02/09 16:33
Il Totem
Basta usare un if.
Comunque ti avevo detto due volte come fare ad ignorare l'alt+f4...
aaa
10/02/09 17:01
Henry 128
Private Const CP_NOCLOSE_BUTTON As Integer = &H200
Dim myCp As CreateParams = MyBase.CreateParams
Property CreateParams() As CreateParams
Get
Return myCp
End Get
Set(ByVal value As CreateParams)
If CheckBox1.Checked = True Then
myCp.ClassStyle = value.ClassStyle Or CP_NOCLOSE_BUTTON
Else
myCp.ClassStyle = 0
End If
End Set
End Property
Quando spunto la CheckBox non si modifica niente.
Ultima modifica effettuata da Henry 128 10/02/09 17:04
aaa
11/02/09 14:48
Il Totem
Hai messo il codice in Set, mentre prima era in get. Inoltre, presuppongo che la proprietà, essendo modificata tramite polimorfismo e overloading, venga richiamata dalla routine di costruzione del form una sola volta all'inizializzazione e che, quindi, tu non possa modificarla una volta creato il form. Tuttavia è solo un'ipotesi...
aaa
12/02/09 22:41
Henry 128
Ad esempio Me.Visible=True
Il visible è una proprietà però la si può modificare ad ogni momento.
aaa
13/02/09 14:40
Il Totem
Ma è proprio questo che ipotizzavo! Ossia che quella proprietà venisse richiamata solo all'avvio del form. Se, infatti, si verificasse la mia previsione, la proprietà restituirebbe sempre un valore di CreateParams in cui il pulsante chiudi è disattivato. Mentre se usi il secondo codice (quello con Set), all'inizio la proprietà restituisce myCp, che è un CreateParams normale, e che, quindi, include il pulsante chiudi. Quando modifichi la proprietà con Set, ormai è tardi, perchè il form è già stato creato e inizializzato con la X attivata. E' proprio perchè la proprietà era definita Protected Overrides che mi è venuto questo dubbio.
aaa