一、无边框窗体
1 最大化、最小化以及关闭按钮制作
实际上就是更换点击前、指向时、点击时的图片

(1)将图片放在该文件夹的Debug中,
获取图片的路径
Application.StartupPath + "\\图片名.类型"
(2)若是放在该文件夹的中,
Application.StartupPath + "\\..\\..\\images\\图片名.类型"

\..\文件夹名称... 向上翻一个文件夹,上面的第一个\是转义

 pictureBox2.BackgroundImage = Image.FromFile(Application.StartupPath + "\\1.png");

2 窗体动起来
调用窗体移动的API,如果有其它控件覆盖了窗体,那么写好鼠标按下的事件委 
托就可以了

//窗体移动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; //记住:在窗体的MouseDown事件中 一定要选择Form1_MouseDown
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (this.WindowState == FormWindowState.Normal)
{
ReleaseCapture();
SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, );
}
}

3 让窗体有阴影

//阴影
//写在构造函数上面 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); //写在构造函数中
SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);

二、后台创建控件

(1)创建

PictureBox p = new PictureBox();//创建图片控件,实例化图片控件
//设置图片
p.BackgroundImage = Image.FromFile(Application.StartupPath + "\\dota_img5.jpg");
p.BackgroundImageLayout = ImageLayout.Stretch; TextBox tb = new TextBox();//创建textBox控件,实例化 flowLayoutPanel1.Controls.Add(p);//放入流式布局的集合中
flowLayoutPanel1.Controls.Add(tb);

(2)更改控件属性

foreach (Control ct in flowLayoutPanel1.Controls)
{
if (ct is TextBox)
{
((TextBox)ct).Text = "";
}
}

三、用户控件
1 是由其它控件所组成的一种用户自定义控件
用户控件的主体与Panel相似,但是它却又是独立的一个类
2 创建
新建项--用户控件--命名(当成一个panel使用)--放入其他控件,所有内部 
的控件访问权限都要修改。
创建完成后显示在工具箱。
3 使用
实例化 yonghu yh=new yonghu();//yonghu是我给我创建的这个起的名字
赋值 yh.textBox1.Text="";
放入流式布局
4 可以给用户控件及其中的控件加上鼠标事件
四、timer在组件里:
Enabled - 此控件是否启用
Interval - 间隔时间,毫秒
Tick事件 - 间隔指定时间后要执行的代码段
timer就是个线程,这个线程默认可以跨线程访问对象

无边框窗体、用户控件、Timer控件的更多相关文章

  1. 无边框窗体和timer控件

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  2. WinForm 无边框窗体和timer控件

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入,移出,按下三个事件会让按钮改变样式 如何获取图 ...

  3. WPFの无边框窗体以及控件的移动

    对于WPF,一旦隐藏了标题栏,就无法移动,这时候需要重写移动方法,下面列举常见的三种方式方式. 方式一:重写OnMouseLeftButtonDown protected override void ...

  4. winform(无边框窗体与timer)

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  5. 2017-4-26 winform tab和无边框窗体制作

    TabIndex-----------------------------------确定此控件将占用的Tab键顺序索引 Tabstop-------------------------------指 ...

  6. MFC 无边框窗体实现用鼠标拖动窗体边缘实现窗体大小变化

    无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN ...

  7. Qt无边框窗体-最大化时支持拖拽还原

    目录 一.概述 二.效果展示 三.demo制作 1.设计窗体 2.双击放大 四.拖拽 五.相关文章 原文链接:Markdown模板 一.概述 用Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮 ...

  8. C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

  9. C#自定义按钮、自定义WinForm无边框窗体、自定义MessageBox窗体

    C#自定义按钮.自定义WinForm无边框窗体.自定义MessageBox窗体 C#自定义Button按钮控件 效果展示 C#自定义Winform无边框窗体 效果展示 C#自定义无边框MessageB ...

随机推荐

  1. paper 64:尺度空间(Scale space)理论

    尺度空间方法的基本思想是:在视觉信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征.尺度空间方法将传统的单尺度视觉信息 ...

  2. Mysql索引总结(二)

    在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytable表: ) NOT NULL ); 在查找username="admin"的记录 SELECT * ...

  3. yii2多语言设置

    yii2的多语言切换功能 1.页面添加语言切换按钮,如下图: 代码如下: <ul>       <li>           <a href="javascri ...

  4. thinkphp 一个页面使用2次分页的方法

    thinkphp内置ORG.Util.Page方法分页,使分页变得非常简单快捷. 但是如果一个页面里需要使用2次分页,就会产生冲突,这里先记录下百度来的解决办法 可以说是毫无技术含量的办法: 将Pag ...

  5. ActiveMQ实现负载均衡+高可用部署方案(转)

    本文转自:http://www.open-open.com/lib/view/open1400126457817.html%20 一.架构和技术介绍 1.简介 ActiveMQ 是Apache出品,最 ...

  6. MySQL OnlineDDL

    参考资料: http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html http://www.mysqlperfo ...

  7. 161122、BOM 操作写法示例

    浏览器相关信息 // 浏览器信息 navigator.userAgent // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/ ...

  8. PHP开发框架Laravel优点,Laravel5.3中文文档

    PHP开发框架Laravel优点 Laravel的设计思想是很先进的,非常适合应用各种开发模式TDD, DDD和BDD,作为一个框架,它为你准备好了一切,composer是个php的未来,没有comp ...

  9. ImageLoader 图片加裁

    // String picurl = article.cateLogo;// ImageLoader.getInstance().displayImage(picurl, holder.cate_Lo ...

  10. RAC例子

    我个人非常推崇ReactiveCocoa,它就像中国的太极,太极生两仪,两仪生四象,四象生八卦,八卦生万物.ReactiveCocoa是一个高度抽象的编程框架,它真的很抽象,初看你不知道它是要干嘛的, ...