无边框窗体、后台创建控件、简单通讯

时间:2022-01-19 19:15:29

一、无边框窗体

1、控制按钮如何制作:

就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要可以点击能触发点击事件就可以了

(1)美化一下的话那就可以把鼠标移入,移出,,按下三个事件让按钮改变样式

(2)如何获取图片的相对路径

//鼠标移入时显示的图片 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"); }

(\..\文件夹名称... 向上翻一个文件夹)


2、如何让窗体动起来:

调用窗体移动的API

如果有其它控件覆盖了窗体,那么写好该控件的点击事件,即鼠标按下的事件委托指向被设置窗体移动的窗体就可以了,


3、如何让窗体有阴影:方法挺多,可以百度搜索

案例一:

public partial class Form1 : Form { //显示右边、下边的阴影 private const int CS_DropSHADOW = 0x20000; private const int GCL_STYLE = (-26); [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)创建

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 = "123123"; } }

三、用户控件
1、是由其它控件所组成的一种用户自定义控件

用户控件的主体与Panel相似,但是它却又是独立的一个类

2、创建

新建项--用户控件--命名(当成一个panel使用)--放入其他控件,所有内部 

的控件访问权限都要修改。

创建完成后显示在工具箱。

3、使用

实例化 yonghu yh=new yonghu();//yonghu是我给我创建的这个起的名字

赋值 yh.textBox1.Text="";

   放入流式布局

4、可以给用户控件及其中的控件加上鼠标事件

四、timer在组件里:

(1)Enabled - 此控件是否启用