-Form Ekranını taşımak için-
İlk olarak bir adet windows form applikasyonu açalım ve Form1 ekranımızın FormBorderStyle özelliğini none yapalım. Ardından form ekranımıza bir adet label ekleyelim.
Üç adet değişken tanımlayalım:
Form1 elemanımızın olaylar kısmındaki Form1_MouseDown,Form1_MouseMove ve Form1_MouseUp olaylarına çift tıklayalım. Aynı olayları label içinde tanımlayalım. Çünkü label’e üzerine tıklayıp da taşınması gerekmekte.
-Form Kenarlarını Oval Yapmak İçin-
Burada da Gdi32.dll adlı dll’yi formumuza import ediyoruz. Ardından kenar özellikleri için tanımlamamız gereken değişkenler ve metodumuz var. Onları yazalım. Sonrada public Form1() olayı içine metodumuzu ekleyelim.
-Projenin tam hali-
İlk olarak bir adet windows form applikasyonu açalım ve Form1 ekranımızın FormBorderStyle özelliğini none yapalım. Ardından form ekranımıza bir adet label ekleyelim.
Üç adet değişken tanımlayalım:
C#:
private bool dragging = false;//Sürükleme özelliğimiz
private Point dragCursorPoint;
private Point dragFormPoint;
Form1 elemanımızın olaylar kısmındaki Form1_MouseDown,Form1_MouseMove ve Form1_MouseUp olaylarına çift tıklayalım. Aynı olayları label içinde tanımlayalım. Çünkü label’e üzerine tıklayıp da taşınması gerekmekte.
C#:
private bool dragging = false;
private Point dragCursorPoint;
private Point dragFormPoint;
private void Form1_MouseDown(object sender, MouseEventArgs e)
//Tıkladığımızda mouse tuşu aşağı doğru hareket edince gerçekleşir.
{
dragging = true;
dragCursorPoint = Cursor.Position;
dragFormPoint = this.Location;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
//Mouse hareket ederse gerçekleşecek ifadeler. Biz basılı iken hareket etmesi için dragging tanımladık.
{
if (dragging)
{
Point dif = Point.Subtract(Cursor.Position, new Size(dragCursorPoint));
this.Location = Point.Add(dragFormPoint, new Size(dif));
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
//Mouse tuşu yukarı kalktığında gerçekleşecek ifademiz.
{
dragging = false;
}
-Form Kenarlarını Oval Yapmak İçin-
Burada da Gdi32.dll adlı dll’yi formumuza import ediyoruz. Ardından kenar özellikleri için tanımlamamız gereken değişkenler ve metodumuz var. Onları yazalım. Sonrada public Form1() olayı içine metodumuzu ekleyelim.
C#:
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
int nLeftRect, // sol üst köşenin x koordinatı
int nTopRect, // sol üst köşenin y kordinatı
int nRightRect, // sağ alt köşenin x kordinatı
int nBottomRect, // sağ alt köşenin y kordinatı
int nWidthEllipse, // height of ellipse
int nHeightEllipse // elipsin genişliği
);
public Form1()
{
InitializeComponent();
Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 40, 40));
//40,40 yaparsanız eşit derecede oval olur. Ancak istediğiniz sayıyı da verebilirsiniz.
}
-Projenin tam hali-
C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;//Dll İmport etmek için eklenmeli.
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private bool dragging = false;
private Point dragCursorPoint;
private Point dragFormPoint;
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
int nLeftRect,
int nTopRect,
int nRightRect,
int nBottomRect,
int nWidthEllipse,
int nHeightEllipse
);
public Form1()
{
InitializeComponent();
Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 40, 40));
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
dragging = true;
dragCursorPoint = Cursor.Position;
dragFormPoint = this.Location;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (dragging)
{
Point dif = Point.Subtract(Cursor.Position, new Size(dragCursorPoint));
this.Location = Point.Add(dragFormPoint, new Size(dif));
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
dragging = false;
}
}
}