Oppure

Loading
10/02/09 12:42
Henry 128
Ci sono riuscito!!! :asd:
Questo è il codice:

   Private Const CP_NOCLOSE_BUTTON As Integer = &H200
    Protected Overloads Overrides ReadOnly Property CreateParams() As CreateParams
        Get
            Dim myCp As CreateParams = MyBase.CreateParams
            myCp.ClassStyle = myCp.ClassStyle Or CP_NOCLOSE_BUTTON
            Return myCp
        End Get
    End Property


Grazie Totem x l'aiuto :k:
aaa
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
13/02/09 18:17
Henry 128
A ok adesso ho capito...
aaa