C#关于winforms窗体大小、边框、移动、动画等属性

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

//=========================窗体动画  结束================================

时间: 2024-10-12 16:32:00

C#关于winforms窗体大小、边框、移动、动画等属性的相关文章

Winform拖拽改变无边框窗体大小

大家在进行Winform开发过程中,很容易就可以完成一个窗口的布局工作,但现在的软件界面美化效果一个比一个好,很多软件都是无边框的,于是乎,你是不是也感叹:winform的带边框的窗体如此丑陋,我一定要把边框去掉!OK,去掉边框对Winform来说那绝对一件相当easy的事情,一句this.FormBorderStyle=FormBorderStyle.None就可搞定.       简单倒是简单,边框去掉了,达到了自己的要求,但同时来了很多麻烦,其中一个就是窗口无法拖动改变大小了(这个问题在网

Pyqt 以OOP方式动画的效果改变自身窗体大小

代码: 1 # -*- coding:utf8 -*- 2 from PyQt4.QtGui import * 3 from PyQt4.QtCore import * 4 import sys 5 6 class ani(QWidget): 7 def __init__(self): 8 super(ani, self).__init__() 9 self.OrigHeight = 50 10 self.ChangeHeight = 150 11 self.setGeometry(QRect(

实现无边框窗体的拖动及窗体大小变化

无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN,发送窗体拖曳变化的消息 具体阐述如下: 1. 实现WM_NCHITTEST消息,实现四条边框的模拟,参考代码如下: LRESULT CNoBorderWndChangeSizeDlg::OnNcHitTest(CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CRect r

基于C# WinForms窗体——飞机大战

原文:基于C# WinForms窗体——飞机大战 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Syste

android自定义Activity窗体大小

先给大家看图吧: 看,是不是很酷呢,呵呵. 这里我说关键的地方,就是自定义Activity的窗体大小. 这个登录框它不是一个Dialog,而是一个Activity. 如何定义,即把Activity的主题设置为Theme.Dialog <activity android:name=".AlertDialogActivity"  android:theme="@style/mytheme" /> mytheme.xml是我自定义的主题 mytheme.xml

cocos2d-x3.0rc 版 设置模拟器窗体大小

由于刚接触这职业时间不是非常长.也是第一次写博客,假设有错误的地方还请大神们指出,开通这博客目的非常easy相互学习和讨论(更重要的是记录工作中学到的东西以方便以后自己查阅) 先后參与过两个项目.只是框架都是搭建好了,非常大一部分都已经完毕.当要用到的时候仅仅要复制后进行改动,都说程序员越懒前进的越快,后来我才懂得原来复制是高手在用的,我这样的菜鸟不适合.在复制中把非常多C++的东西都过滤掉了,晚上闲着没事就自己创建了个project,当我打开project却无从下手.我開始害怕... 原来我什

[改善] dcef3 for Firemonkey 浏览器控件,拉动窗体大小会闪烁的问题

问题:dcef3 for Firemonkey 浏览器控件,拉动窗体大小会闪烁的问题 修改源码:ceffmx.pas 找到 procedure TCustomChromiumFMX.Resize; 修改如下: procedure TCustomChromiumFMX.Resize; var brws: ICefBrowser; b: TBitmap; begin inherited; if not (csDesigning in ComponentState) then begin brws :

关于GridBagLayout设置窗体大小的一个小问题

在swing中,我们一般设置窗体大小用setSize()方法,此方法的的确确是好用.但是在涉及到布局的时候,尤其是GridBagLayout这种复杂的布局而且针对的窗口不小时,此方法就不奏效了.没试过的可以试试. 那我们应该怎么做呢? 很简单,先检查代码有没有很基本的错误,如果没有,那么只要把setSize()方法换成setPreferedSize()就可以了; 但还要注意一点,setPreferedSize()参数为Dimension类型,不是两个int类型的参数. 例子部分代码如下: Dim

如何让窗体大小随着控件的大小变化而变化

form的autosize=true,formborderstyle=fixedsingle tablelayoutpanel及其里面的容器的dock=fill,autosize=true label中的文字比较贴着窗体边缘时可以通过padding属性来调整 因定宽度则可以使用tablelayoutpanel中的列固定 atablelayoutpanel中的行也可以固定,而不固定行直接按百分比来设置 如何让窗体大小随着控件的大小变化而变化