C#分屏控件用法实例
本文实例中的自定义类PictureBox继承于UserControl,最终实现简单的分屏功能。分享给大家供大家参考之用。具体实现代码如下:
- public partial class PictureControl : UserControl
- {
- public event MouseEventHandler PicControl_DoubleClick;
- private int picNum;
- /// <summary>
- /// 屏幕个数
- /// </summary>
- public int PicNum
- {
- get { return picNum; }
- set
- {
- if (value == || value == || value == || value == || value == || value == || value == )//只能
- 是4、、、、、、
- {
- picNum = value;
- this.SetPictureBox(this.picNum);
- }
- else
- {
- this.PicNum = ;
- this.SetPictureBox(this.picNum);
- }
- }
- }
- public PictureControl()
- {
- this.picNum = ;
- InitializeComponent();
- this.SetPictureBox(this.picNum);
- }
- /// <summary>
- /// 根据个数布局PictureBox
- /// </summary>
- /// <param name="num"></param>
- private void SetPictureBox(int num)
- {
- this.Controls.Clear();
- Size size = this.Size;
- switch (num)
- {
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- case : this.SetPictureBox(, , size); break;
- }
- }
- /// <summary>
- /// 布局pictureBox
- /// </summary>
- /// <param name="x">几行</param>
- /// <param name="y">几列</param>
- /// <param name="size">当前控件的大小</param>
- private void SetPictureBox(int x, int y,Size size)
- {
- int num = ;
- for (int i = ; i < x; i++)
- {
- for (int j = ; j < y; j++)
- {
- PictureBox pic = new PictureBox();
- pic.SizeMode = PictureBoxSizeMode.Zoom; //设置自动缩放
- pic.BackColor = Color.White; //设置背景颜色
- pic.Location = new Point((size.Width / y) * j, (size.Height / x) * i); //设置Location
- pic.BorderStyle = BorderStyle.FixedSingle; //设置边框
- pic.MouseDoubleClick += new MouseEventHandler(pic_MouseDoubleClick); //订阅控件双击事件
- pic.Size = new Size(size.Width / y, size.Height / x); //设置控件大小
- pic.Tag = num; //设定控件编号即屏幕序号
- this.Controls.Add(pic); //添加
- num++;
- }
- }
- }
- void pic_MouseDoubleClick(object sender, MouseEventArgs e)
- {
- if (this.PicControl_DoubleClick != null)
- {
- this.PicControl_DoubleClick(sender, e);//将动态添加的控件的双击事件 传向控件体外。
- }
- }
- private void PictureControl_SizeChanged(object sender, EventArgs e)
- {
- this.SetPictureBox(this.picNum);
- }
- private PictureBox GetPicByIndex(int index)
- {
- foreach (Control c in this.Controls)
- {
- if (Convert.ToInt32(c.Tag) == index)
- {
- return (PictureBox)c;
- }
- }
- PictureBox p = new PictureBox();
- p.Tag = -;
- return p;
- }
- /// <summary>
- /// 根据屏幕序号设置图像
- /// </summary>
- /// <param name="index">屏幕号</param>
- /// <param name="img">图像</param>
- public void SetImageByIndex(int index, Image img)
- {
- GetPicByIndex(index).Image = img;
- }
- }
C#分屏控件用法实例的更多相关文章
- [深入浅出Windows 10]分屏控件(SplitView)
4.18 分屏控件(SplitView) 分屏控件(SplitView)是Windows 10新增的控件类型,也是Windows 10通用应用程序主推的交互控件,通常和一个汉堡按钮搭配作为一种抽屉式菜 ...
- Jquery + css 日期控件用法实例.zip
/*==============================================================================** Filename:common.j ...
- 关于Datagridview控件用法的一些总结(设置列chicun)
1. 关于Datagridview控件用法的一些总结:http://www.cnblogs.com/mingjiatang/p/4968049.html
- IOS开发之XCode学习013:步进器和分栏控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIStepper和UISegmente ...
- MFC中ComboBox控件用法
MFC ComboBox 一.入门篇 ComboBox (组合框)控件很简单,可以节省空间.从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的.用户可以从一个预先定义的列表里选择一个选项 ...
- CustomValidator控件用法
虽然大部分时间一直从事asp.net的开发,对于一些常用的asp.net服务器端验证控件及它们的组合使用比较熟悉,如:CompareValidator ——比较验证控件RangeValidator — ...
- Python Tkinter基础控件入门实例
分享一个Python Tkinter基础控件用法的入门例子,包括窗口的显示.显示内置图片.弹出窗口.菜单等. 例子,Python Tkinter基础控件的用法 # -*- coding: utf-8 ...
- DevExpress XtraScheduler日程管理控件应用实例(2)-- 深入理解数据存储
DevExpress年终击穿底价,单套授权低至67折!查看详情>>> 在上篇随笔<DevExpress XtraScheduler日程管理控件应用实例(1)-- 基本使用> ...
- MFC按钮、列表控件应用实例(一)
需求:实现张三.李四.王五 3 人的课程选择,并将选课结果提交到列表框中显示. 实现过程: 1.建立对话框mfc工程. 2.添加控件 tab 顺序 控 件 类 型 控件 ID1 Button IDC_ ...
随机推荐
- 关于Windows Azure 地缘组(Affinity Groups)
最近在和一些客户和朋友的沟通中,发现Windows Azure地缘组概念很少有了解.我的建议是使用地缘组来优化同一区域内的网络访问速度.如果我的说法有误,欢迎大家指正. 关于“地缘组”的概念(摘自MS ...
- LightOJ 1370 - Bi-shoe and Phi-shoe (欧拉函数思想)
http://lightoj.com/volume_showproblem.php?problem=1370 Bi-shoe and Phi-shoe Time Limit:2000MS Me ...
- [转]前景检测算法--ViBe算法
原文:http://blog.csdn.net/zouxy09/article/details/9622285 转自:http://blog.csdn.net/app_12062011/article ...
- HDU1151Air Raid(二分图的最大匹配)
题目大意: 有一个城镇,它的所有街道都是单行的,并且每条街道都是和两个路口相连.同时已知街道不会形成回路. 你的任务是编写程序求最小数量的伞兵,这些伞兵可以访问(visit)所有的路口.
- button 禁止
1.按钮的id为btnzhuce==> 控制按钮为禁用: $("#btnzhuce").attr({"disabled":"disabled& ...
- Android系统默认设置
修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...
- myeclipse 8.6安装freemarker插件
1. 打开http://sourceforge.net/projects/freemarker-ide/files/ 下载插件.2. 将其解压,将hudson.freemarker_ide_0.9.1 ...
- 彻底解决cookie欺骗(有问题)
不要在公共场登陆 自己重要的用户名和密码: 不用的时候,[关闭浏览器],只点[退出],还是会有安全隐患.--没有绝对的安全由于http的无状态性,总不能每次访问页面都要输入用户名和密码,所以为了保持状 ...
- [转]ViewPager onPageChangeListener总结
android ViewPager滑动事件讲解 首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageChangeListener这个接口需要实现三个方 ...
- Delphi Data Types
http://docwiki.embarcadero.com/RADStudio/XE6/en/Delphi_Data_Types Integer Data Types Type Descriptio ...