当前位置:  编程技术>.net/c#/asp.net

C#分屏控件用法实例

    来源: 互联网  发布时间:2014-11-02

    本文导语:  本文实例中的自定义类PictureBox继承于UserControl,最终实现简单的分屏功能。分享给大家供大家参考之用。具体实现代码如下: public partial class PictureControl : UserControl { public event MouseEventHandler PicControl_DoubleClick; private int...

本文实例中的自定义类PictureBox继承于UserControl,最终实现简单的分屏功能。分享给大家供大家参考之用。具体实现代码如下:

public partial class PictureControl : UserControl
{
    public event MouseEventHandler PicControl_DoubleClick;
    private int picNum;
    /// 
    /// 屏幕个数
    /// 
    public int PicNum
    {
      get { return picNum; }
      set
      {
        if (value == 4 || value == 6 || value == 9 || value == 12 || value == 16 || value == 20 || value == 25)//只能

是4、6、9、12、16、20、25
        {
          picNum = value;
          this.SetPictureBox(this.picNum);
        }
        else
        {
          this.PicNum = 12;
          this.SetPictureBox(this.picNum);
        }
      }
    }

    public PictureControl()
    {
      this.picNum = 4;
      InitializeComponent();
      this.SetPictureBox(this.picNum);
    }

    /// 
    /// 根据个数布局PictureBox
    /// 
    /// 
    private void SetPictureBox(int num)
    {
      this.Controls.Clear();
      Size size = this.Size;
      switch (num)
      {
        case 4: this.SetPictureBox(2, 2, size); break;
        case 6: this.SetPictureBox(2, 3, size); break;
        case 9: this.SetPictureBox(3, 3, size); break;
        case 12: this.SetPictureBox(3, 4, size); break;
        case 16: this.SetPictureBox(4, 4, size); break;
        case 20: this.SetPictureBox(4, 5, size); break;
        case 25: this.SetPictureBox(5, 5, size); break;
      }
    }

    /// 
    /// 布局pictureBox
    /// 
    /// 几行
    /// 几列
    /// 当前控件的大小
    private void SetPictureBox(int x, int y,Size size)
    {
      int num = 0;
      for (int i = 0; i < x; i++)
      {
        for (int j = 0; 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 = -1;
      return p;
    }
    /// 
    /// 根据屏幕序号设置图像
    /// 
    /// 屏幕号
    /// 图像
    public void SetImageByIndex(int index, Image img)
    {
      GetPicByIndex(index).Image = img;
    }
}

希望本文所述实例对大家C#程序设计有所帮助。


    
 
 

您可能感兴趣的文章:

  • C#实现根据指定容器和控件名字获得控件的方法
  • C# SkinEngine控件 给窗体添加皮肤的方法
  • C#给picturebox控件加图片选中状态的2个方法
  • c#获取用户控件中控件的ID的代码
  • c# 动态添加非标准html控件的代码
  • 浅析c#中如何在form的webbrowser控件中获得鼠标坐标
  • C# Timer定时器控件运行时需要修改系统时间的问题
  • c# 控件截图的简单实例
  • C# TreeView控件右键菜单获得当前节点的问题
  • 解决C#中取消方向键对控件焦点控制的实现方法
  • c#后台线程访问前台控件并显示信息示例
  • c#编程之设置DataGrid控件的标题栏
  • c#实现DataGridView控件隔行变色(winform)的代码
  • C# WebBrowser控件禁用超链接、右键菜单和快捷键的方法
  • 解析C#中如何把控件的边框角画为圆弧
  • C#自定义控件添加右键菜单的实现代码
  • C#中改变DataGridView控件边框颜色的方法
  • C#编程之绑定数据到DataGrid控件
  • .net/c#/asp.net iis7站长之家
  • 深入分析C#中WinForm控件之Dock顺序调整的详解
  • html中<radio>单选按钮控件标签用法解析及如何设置默认选中
  • asp.net Google样式分页控件用法
  • 谁有 有关 Data Express DBSwing页面上控件用法的资料(要是中文的)?我找了好久,都没有找到合适的资料
  • Qt中关于控件QTextEdit用法的疑问
  • GridView控件列上格式化时间的用法举例
  • Python Tkinter基础控件用法
  • VC编程控件类HTControl之CHTGDIManager GDI资源管理类用法解析
  • VC++的combobox控件用法汇总
  • C#中WebBroeser控件用法实例教程
  • MFC之ComboBox控件用法实例教程
  • JSP 页面中使用FCKeditor控件(js用法)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 根据控件Id得到控件并对该控件进行操作
  • 我写的一个页面表单,其各个控件是自动生成的,请问怎么判断哪个控件是text型,哪个控件是下拉框?谢谢!
  • 紧急求助:请问java有没有比较丰富的多媒体控件?比如录音的控件???
  • 在QLable控件上如何绘图???我想实现在label控件上绘图,大家帮忙~~~
  • 获取控件大小和设置调整控件的位置XY示例
  • asp控件和html控件的概念区别
  • vb.net DropDownList控件实例代码 在DropDownList控件中显示访问数据
  • java通过复选框控件数组实现添加多个复选框控件示例分享
  • asp.net Control控件常用的属性与方法
  • android控件之WebView控件缩小
  • 网页表格控件 two-column-selector
  • QT4 获取当前按下的控件名
  • 数据表格控件 tableview
  • Android控件之TextView的分析探究
  • 有没有类似JBuilder 中的控件面板的那种可以使其上的按钮左右滚动的控件
  • 树形控件 android_treevew
  • 把某个asp.net 控件替换成自定义控件的方法
  • ASP.NET 页面中加添加用户控件的写法
  • J2ME UI控件 Mewt
  • 基于swt的控件 nebula


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3