WinForm是·Net开发平台中对Windows Form的一种称谓。

Windows窗体的一些重要特点如下:

功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的应用程序。

操作方便:新的数据提供程序管理:数据提供程序管理提供易于连接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等。

使用安全:Windows窗体充分利用公共语言运行库的安全特性。这就意味着,一切都可以通过Windows窗体来实现,包括在浏览器中运行的不可信控件和用户硬盘上安装的完全可信的应用程序。

WinForm窗体的常用属性

1.布局:

AutoScroll - 内容大于课件区域时是否显示滚动条 true/false

AutoSize - 是否调整自身大大小以适应起重内容大小 true/false

Location - 左上角的坐标 0,0 (像素)

StartPosition - 第一次出现时的位置 CenterScreen 居中显示
MaxximumSize - 窗口可调整到的最大大小
MinimunSize -窗口可调整到的最小大小
padding - 内部间距0,0,0,0 左上右下
Size - 控件大小300,300(以像素为单位)
WindowState - 确定初始可是状态 Minimized 最小化 Maximized 最大化

2.窗口样式:
ControlBox -确定是否有系统菜单边框 true/false
Icon - 窗体图标,最小化时显示 ico 格式

MaximizeBox - 确定右上角是否有最大化框
MinimizeBox - 确定右上角是否是最小化框
HelpButton - 标题栏上的帮助按钮
MaximizeBox与 MinimizeBox 同时为False HelpButton 为True是显示 
Opacity -透明度
ShowIcon - 窗体标题栏中是否显示图标
ShowInTaskbar - Windows 任务栏中是否显示窗体
TopMost - 是否显示在此属性威慑住为true的所有窗体之上
TransparencyKey - 窗体上显示透明的颜色

3.设计:
Name - 对象中用来识别对象的名称

4.数据:
Tag -与对象关联的用户定义数据

5.外观:
BackgroundImage - 背景图片
BackgroundImagelayout - 背景图片的布局
BackColor -背景颜色
Cursor - 显示的鼠标样式
FormBorderStyle - 边框的和标题栏的样式
Text 窗体的文本
6.杂项:
AcceptButton -设置了此按钮,用户按Enter相当于“单击”。
CancelButton - 设置了此按钮,用户按Eec相当于“单击”

窗体美化

一.制作一个无边框窗体

属性FormBorderStyle 设置为NONE

二.控制按钮如何制作

  //触发事件改变它的背景图片 关闭按钮为例
private void pictureBox1_Click(object sender, EventArgs e)//点击事件
{
this.Close();
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)//鼠标进入事件
{
pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close_highlight.png");
} private void pictureBox1_MouseLeave(object sender, EventArgs e)//鼠标离开时事件
{
pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close_disable.png");
} private void pictureBox1_MouseDown(object sender, MouseEventArgs e)//鼠标按下事件
{
pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + "\\..\\..\\images\\btn_close_down.png");

三.如何让窗体动起来

 //窗体移动API
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
public const int WM_SYSCOMMAND = 0x0112;
public const int SC_MOVE = 0xF010;
public const int HTCAPTION = 0x0002;
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB; private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, );
}
}

四.如何让窗体有阴影

 using System.Runtime.InteropServices;//引用命名空间

         //代码如下
private const int CS_DropSHADOW = 0x20000;
private const int GCL_STYLE = (-); [DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int GetClassLong(IntPtr hwnd, int nIndex); public Form1()
{ InitializeComponent();
SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);
}

最新文章

  1. audacity开源VS2013环境搭建
  2. SQL Server选项综述
  3. 请求WebMethod, Ajax 处理更加专注
  4. 打开div层
  5. 纯CSS3画出小黄人并实现动画效果
  6. ubuntu1204上不能正常用emacs配合gocode进行自动补全
  7. CP30,DBCP数据源配置
  8. Apriori算法实现
  9. Front-End(五)——工具使用
  10. PAT 团体程序设计天梯赛-练习集 L1-023. 输出GPLT
  11. CSS3秘笈复习:第八章
  12. Android学习资料整理
  13. 一步步实现滑动验证码,Java图片处理关键代码
  14. 2018-2019-2 网络对抗技术 20165326 Exp3 免杀原理与实践
  15. No matching authentication protocol
  16. HttpWebResponse Post 前端控件数据,后台如何接收?
  17. Firebug 没死,活在 Firefox DevTools 中
  18. Java 8 新特性-菜鸟教程 (6) -Java 8 Optional 类
  19. 云主机被拿去挖矿,cpu暴涨,tcp连接突增
  20. Golang mysql

热门文章

  1. 比官方教程代码更简短的SignalR Server Broadcast示例
  2. jws.mono脚本安装详解
  3. 浅析MSIL中间语言——基础篇
  4. 搭建Cordova开发环境
  5. Windows Azure Storage (21) 使用AzCopy工具,加快Azure Storage传输速度
  6. C# 的 Dictionary 寫入前應注意事項
  7. Qt on Android 核心编程
  8. CSS学习笔记2-2d变换和过渡属性
  9. javascript 闭包
  10. java使用Executor(执行器)管理线程