1、窗體的邊框設置為無;
2、把窗體高度調整為25,發現跑的時候總在40左右,這時需要改改屬性,
把MinimumSize(0, 0)改成不為0的,最好改成和自己想要一樣的大小,
最大高寬也應該這么調;
3、把窗體的邊框去了就不能移動窗體了,我們需要給窗體加鼠標按下、移動、松開事件
//===========================拖動窗口 開始============================
#region
窗口可拖動
Point
mouseOff;
//鼠標移動位置變量
bool
leftFlag;
//標簽是否為左鍵
private
void
Form1_MouseDown(
object
sender,
MouseEventArgs
e)
{
if
(e.Button ==
MouseButtons
.Left)
{
mouseOff =
new
Point
(-e.X, -e.Y);
//得到變量的值
leftFlag =
true
;
//點擊左鍵按下時標注為true;
}
}
private
void
Form1_MouseMove(
object
sender,
MouseEventArgs
e)
{
if
(leftFlag)
{
Point
mouseSet =
Control
.MousePosition;
mouseSet.Offset(mouseOff.X, mouseOff.Y);
//設置移動后的位置
Location = mouseSet;
}
}
private
void
Form1_MouseUp(
object
sender,
MouseEventArgs
e)
{
if
(leftFlag)
{
leftFlag =
false
;
//釋放鼠標后標注為false;
}
}
#endregion
//===========================拖動窗口 結束============================
4、窗體打開和關閉的動畫;
//=========================窗體動畫 開始================================
#region
窗體動畫
///
<summary>
///
窗體動畫函數
///
</summary>
///
<param name="hwnd">
指定產生動畫的窗口的句柄
</param>
///
<param name="dwTime">
指定動畫持續的時間
</param>
///
<param name="dwFlags">
指定動畫類型,可以是一個或多個標志的組合。
</param>
///
<returns></returns>
[
DllImport
(
"user32"
)]
private
static
extern
bool
AnimateWindow(
IntPtr
hwnd,
int
dwTime,
int
dwFlags);
//下面是可用的常量,根據不同的動畫效果聲明自己需要的
private
const
int
AW_HOR_POSITIVE = 0x0001;
//自左向右顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
private
const
int
AW_HOR_NEGATIVE = 0x0002;
//自右向左顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
private
const
int
AW_VER_POSITIVE = 0x0004;
//自頂向下顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志
private
const
int
AW_VER_NEGATIVE = 0x0008;
//自下向上顯示窗口,該標志可以在滾動動畫和滑動動畫中使用。使用AW_CENTER標志時忽略該標志該標志
private
const
int
AW_CENTER = 0x0010;
//若使用了AW_HIDE標志,則使窗口向內重疊;否則向外擴展
private
const
int
AW_HIDE = 0x10000;
//隱藏窗口
private
const
int
AW_ACTIVE = 0x20000;
//激活窗口,在使用了AW_HIDE標志后不要使用這個標志
private
const
int
AW_SLIDE = 0x40000;
//使用滑動類型動畫效果,默認為滾動動畫類型,當使用AW_CENTER標志時,這個標志就被忽略
private
const
int
AW_BLEND = 0x80000;
//使用淡入淡出效果
//窗體代碼(將窗體的FormBorderStyle屬性設置為none):
private
void
Form1_Load(
object
sender,
EventArgs
e)
{
int
x =
Screen
.PrimaryScreen.WorkingArea.Left + 210;
int
y =
Screen
.PrimaryScreen.WorkingArea.Top + 96;
this
.Location =
new
Point
(x, y);
//設置窗體在屏幕右下角顯示
AnimateWindow(
this
.Handle, 500, AW_SLIDE | AW_ACTIVE | AW_VER_POSITIVE);
}
//窗體關閉事件
private
void
FirstForm_DoubleClick(
object
sender,
EventArgs
e)
{
Form1_FormClosing(
null
,
null
);
}
public
void
Form1_FormClosing(
object
sender,
FormClosingEventArgs
e)
{
AnimateWindow(
this
.Handle, 500, AW_BLEND | AW_HIDE);
_instance =
null
;
}
#endregion
//=========================窗體動畫 結束================================