Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
ToolStrip e CancelButton
lunedì 12 ottobre 2009 - 14.52
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
lun 12 ott 2009 - 14:52
Ciao a tutti,
in un form ho un menù costituito da un oggetto ToolStrip che contiene
al suo interno N System.Windows.Forms.ToolStripButton.
Vorrei associare alla property CancelButton del form uno di questi
ToolStripButton, ma i due tipi non sono compatibili.
Qualche idea su come potrei aggirare l'ostacolo?
Davide
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 12 ott 2009 - 15:53
Ciao,
il cancebutton è un utilità veloce per chi premendo ESC vuole chiudere la form.
se vuoi associare un tasto al Cancel della form forse vuoi avere un codice che venga eseguito sia quando si chiude che quando si preme "ESC", quindi secondo me potresti pensare di mettere il codice che vuoi dentro ad un metodo che richiami nel close della form, piuttosto che nella pressione del bottone.
Oppure potresti intercettare il KeyPress su quel tasto a livello di form ed eseguire quindi lo stesso codice nel closing...
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
mar 13 ott 2009 - 12:41
Ciao Matteo, ovunque apro un post ti trovo
Al momento ho optato per questa soluzione: disabilitare la X di chiusura,
andando a scrivere qualche riga di chiusura nel form base dell'appicazione,
quello da cui ereditano tutti gli altri.
Public Class BaseForm : Inherits System.Windows.Forms.Form
Private Const MF_BYPOSITION As Int32 = &H400
Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Integer) As Int32
Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Int32
Public Sub New()
RemoveMenu(GetSystemMenu(MyBase.Handle.ToInt64, 0), 6, MF_BYPOSITION)
End Sub
End Class
Sai mica se c'è una soluzione migliore e/o che consenta di nascondere,
anziche disabilitare solo?
Davide
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
mar 13 ott 2009 - 14:24
>Ciao Matteo, ovunque apro un post ti trovo
>Al momento ho optato per questa soluzione: disabilitare la X
>di chiusura,
>andando a scrivere qualche riga di chiusura nel form base dell'appicazione,
ok
>Sai mica se c'è una soluzione migliore e/o che consenta di nascondere,
>anziche disabilitare solo?
eh purtroppo non puoi farlo con Windowsform (a meno di non cambiare la Region della form, quindi di fatto fare un form della forma che vuoi tu
http://msdn.microsoft.com/it-it/library/system.windows.forms.control.region.aspx
).
L'unica cosa che penso avrai visto anche tu, è impostare la proprietà "ControlBox=false" nella form ma ti fa sparire anche l'icona a sinistra...
Ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mar 13 ott 2009 - 14:25
Ciao Davide.
Per evitare di chiudere una form con la X invece di scomodare la librerioa User32 potevi semplicemente utilizzare:
Private toClose As Boolean = False
Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
If Not Me.toClose Then
e.Cancel = True
End If
End Sub
In questo modo fino a che "toClose" è false ogni volta che invochi il metodo Me.Close() la form rimane aperta. Quando la devi chiudere basta che porti a True la variabile e invochi il me.Close().
Per quanto riguarda il CancelButton puoi ascoltare la pressione del tasto Esc
volperubbia
Profilo
| Senior Member
375
messaggi | Data Invio:
mar 13 ott 2009 - 16:18
Grazie
avevo già pensato a questa possibilità, anche a me non piace
scomodare altre librerie.
Però in questo modo la X di chiusura resterebbe visibile e abilitata,
pur non avendo alcun effetto.
Boh ... direi di optare per la soluzione precedente.
Per quanto riguarda il CancelButton e pressione del tasto Esc, tendo
a evitarlo nei forms, preferisco avere dall'utente una "volontà di uscita"
più chiara (... anche a me spesso capita di premere tasti senza volerlo).
Davide
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mar 13 ott 2009 - 16:55
Ciao.
Se vuoi far scomparire la X puoi impostare la proprietà ControlBox a false. IN questo modo scompaiono anche il minimized e il maximmized control
Torna su
Stanze Forum
Elenco Threads
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 !