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
Bloccare posizone form
giovedì 29 novembre 2007 - 16.31
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
drigo83
Profilo
| Senior Member
205
messaggi | Data Invio:
gio 29 nov 2007 - 16:31
Ciao a tutti, ho un form mdicontainer con all'interno un po' di form figli, vorrei fare in modo che questi form non possano essere spostati all'interno del container.
Qualcuno ha qualche idea su come poter fare?
Grazie
Ciao
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
ven 30 nov 2007 - 09:35
Non so se può andarti bene: un metodo semplice potrebbe essere impostando su 'none' la propriety 'FormBorderStyle'...
Diversamente non mi pare ci siano metodi automatici, mi sà che dovresti intercettare lo spostamento del form forzandogli la posizione ...
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
drigo83
Profilo
| Senior Member
205
messaggi | Data Invio:
ven 30 nov 2007 - 09:50
In questo modo però mi toglie il bordo, niente, forzerò la posizione.
Grazie ancora.
Ciao
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 30 nov 2007 - 11:36
Nella wndproc, puoi intercettare i messaggi di spostamento, ma mi viene il dubbio che il form possa rimanere bloccato 'in assoluto' e non solo relativamente al form padre. Non ho mai provato ad usare questa tecnica con gli MDI. Se vuoi fare una prova ( e poi ci racconti come funziona...
), ti passo il codice.
Io ci avevo ricavato un controllo personalizzato che chiamo FormBloccabile (fantasia al potere!
), ma basta che tu inserisca il codice e le dichiarazioni all'interno di un form normale, per ottenerne il bloccaggio. Puoi anche evitare di gestire la variabile boolena con la quale decido se applicare, o meno, il suddetto bloccaggio.:
Public Class FormBloccabile
Inherits System.Windows.Forms.Form
Const WM_NCLBUTTONDOWN As Int32 = &HA1
Const WM_SYSCOMMAND As Int32 = &H112
Const HTCAPTION As Int32 = &H2
Const SC_MOVE As Int32 = &HF010
Private FlagMobile As Boolean = True
Protected Overrides Sub WndProc(ByRef m As Message)
If Not FlagMobile Then
If m.Msg = WM_SYSCOMMAND And m.WParam.ToInt32() = SC_MOVE OrElse m.Msg = WM_NCLBUTTONDOWN And m.WParam.ToInt32() = HTCAPTION Then
Return
End If
End If
MyBase.WndProc(m)
End Sub
Public Property Mobile() As Boolean
Get
Return FlagMobile
End Get
Set(ByVal Mobile As Boolean)
FlagMobile = Mobile
End Set
End Property
End Class
Temo che non funzionerà bene per il tuo caso, ma non si sa mai!
Tienici informati. Ciao.
drigo83
Profilo
| Senior Member
205
messaggi | Data Invio:
ven 30 nov 2007 - 13:11
Ha funzionato !!!
Grazie!
Ciao ciao
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 30 nov 2007 - 14:35
Ma, se muovi il form padre, cioè il contenitore, i form contenuti (e bloccati), lo seguono, o rimangono nello stesso punto dello schermo (approfitto del tuo collaudo
)?
drigo83
Profilo
| Senior Member
205
messaggi | Data Invio:
ven 30 nov 2007 - 14:38
Lo seguono!!
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
ven 30 nov 2007 - 14:45
Marvelous!
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 !