Bir WinForms projem var. Penceremin üstünde bir panel var. Kullanıcı bu pencereyi tıkladığında ve ardından sürüklediğinde pencereyi hareket ettirmek istiyorum.Bir penceredeki tıklatıp sürükleyerek pencereyi taşıma
Bunu nasıl yapabilirim?
Bir WinForms projem var. Penceremin üstünde bir panel var. Kullanıcı bu pencereyi tıkladığında ve ardından sürüklediğinde pencereyi hareket ettirmek istiyorum.Bir penceredeki tıklatıp sürükleyerek pencereyi taşıma
Bunu nasıl yapabilirim?
dersinize aşağıdaki açıklamaların altına ekleyin:
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HTCAPTION = 0x2;
[DllImport("User32.dll")]
public static extern bool ReleaseCapture();
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
senin panelin MouseDown
durumunda bu koyun: http://stackoverflow.com/questions:
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
}
}
bu mükemmel çalışır. çok teşekkür ederim! – Victor
Sevindim yardımcı oldu :) – Blachshma
Mükemmel! +1, matematiksel olarak imleç pozisyonlarını, ofsetlerini vb. Anlamaya çalışan soyutlamalardan kaçınırlar. Ama hayır, bunun yerine, bu mans sadece doğrudan binaya doğru koşar, dondurma konilerini alır ve windows mesajlaşma sistemine geçer. Güzel! Teşekkür ederim. –
Google bu yinelenen olabilir diyor/30184/winforms-tıklayın-sürükleyin-form-it-hareket-it-olarak-it-in-the-form-in-the-form içinde – rie819
Hayır! O değil. Kullanıcının pencereyi formda herhangi bir yere taşıyabilmesini istemiyorum. Kullanıcının pencereyi sadece panel1'den kontrol edebilmesini istiyorum. – Victor
Google'da "Daniel Moth, Vista Glass" konusuna bakın. Öğreticisinin size bunu yapmanıza izin veren bir yöntem göstereceğini biliyorum (bir Win32 çağrısı). Ayrıca bu bazı ilgi çekici olabilir http://www.codeproject.com/Articles/55180/Extending-the-Non-Client-Area-in-Aero – series0ne