Bonjour,
Je souhaite désespérement déplacer un OpenFileDialog (System.Windows.Forms) et impossible de trouver quoi que ce soit pour le faire.
Quelqu'un a une piste ?
Merci d'avance.
Tito
Bonjour,
Je souhaite désespérement déplacer un OpenFileDialog (System.Windows.Forms) et impossible de trouver quoi que ce soit pour le faire.
Quelqu'un a une piste ?
Merci d'avance.
Tito
par deplacer tu veux dire quoi, mettre a une position x,y par rapport a l'ecran ?
sinon c'est une solution win32 qu'il te faut
1- get the hwnd avec un findwindow (cherche la classe avec spy++)
2- utilise movewindow
regarde ici
http://windows-programming.suite101....ith_movewindow
Je rejoins ikeas: tu veux dire quoi par déplacer ?
Thomas LEBRUN: MCAD.NET, MCTS (Win et Web), MCPD(Win et Web) & Microsoft MVP Client Application Development
WPF par la pratique, mon livre sur WPF ! (également disponible ici ou là)
A la découverte de .NET
Désolé effectivement je veux bien par "déplacer" : mettre la fenêtre de dialogue à une certaine position à l'écran.
ben utilise les api win32 que je t'ai indiqué
ceci etant ca risque de poser un legé problème puisque pour afficher la fenêtre du openfiledialog il faut faut un showdialog (qui bloque ton appli) donc tu peux pas changer la position ni avant ni après ....
en creusant avec netreflector je me demande si le mieux serait pas de deriver la classe directement et soit de surcharger rundialog, soit de surcharger runfiledialog mais a mon avis ca va pas etre simple
pour info voici le rundialog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 [SecurityCritical] protected override bool RunDialog(IntPtr hwndOwner) { bool flag; NativeMethods.WndProc proc = new NativeMethods.WndProc(this.HookProc); NativeMethods.OPENFILENAME_I ofn = new NativeMethods.OPENFILENAME_I(); try { this._charBuffer = NativeMethods.CharBuffer.CreateBuffer(0x2000); if (this._fileNames != null) { this._charBuffer.PutString(this._fileNames[0]); } ofn.lStructSize = Marshal.SizeOf(typeof(NativeMethods.OPENFILENAME_I)); ofn.hwndOwner = hwndOwner; ofn.hInstance = IntPtr.Zero; ofn.lpstrFilter = MakeFilterString(this._filter, this.DereferenceLinks); ofn.nFilterIndex = this._filterIndex; ofn.lpstrFile = this._charBuffer.AllocCoTaskMem(); ofn.nMaxFile = this._charBuffer.Length; ofn.lpstrInitialDir = this._initialDirectory.Value; ofn.lpstrTitle = this._title.Value; ofn.Flags = this.Options | 0x880020; ofn.lpfnHook = proc; ofn.FlagsEx = 0x1000000; if ((this._defaultExtension != null) && this.AddExtension) { ofn.lpstrDefExt = this._defaultExtension; } flag = this.RunFileDialog(ofn); } finally { this._charBuffer = null; if (ofn.lpstrFile != IntPtr.Zero) { Marshal.FreeCoTaskMem(ofn.lpstrFile); } } return flag; }
Partager