第一部分:FlowLayoutPanel控件

实现效果: 将FlowLayoutPanel做为导航菜单按钮的容器 以实现 某个菜单按钮不显示时
整体的导航菜单布局不至于"缺憾" 原导航菜单为 button1 button2 button3 当button2不显示时 导航菜单自动变为 button1 button3 而不是 button1   空位 button2

如果以Panel做容器 则实现不了如上效果

再有 以FlowLayoutPanel为容器 默认内部的控件会"集"在一起 为实现button1 与button2之间有想要的间隔 可通过设定button1的Margin属性的bottom 来实现想要的间隔

属性
FlowLayoutPanel控件常用属性及说明如表1所示。

第二部分:拆分器控件Splitcontainer

拆分器控件Splitcontainer ,是一个含有Splitter拆分条的容器,它包含两个面板容器Panel1,Panel2,可以移动拆分条,对面板大小进行控制!

控件学习示例程序!

属性介绍;

//拆分条的是否启用禁用 bool IsSplitterFixed{get;set;} bool类型,true:不能调节拆分条; false :能够使用拆分条. 决定是否可以通过键盘或鼠标来移动拆分器。

//拆分器的方向;垂直和水平方向上拆分控件,上下和左右两块面板 Orientation Orientation{get;set;} Orientation是枚举;包含两个值;水平与垂直; Vertical ; Horizontal ;

//获取拆分条(器)的大小 Rectangle SplitterRectangle{get;} 取得拆分条的矩形表示形式;new Rectangle(X,Y width,height)拆分器就是指拆分条,坐标点,宽高 拆分条,是一个矩形表示的! 该属性的变化,与Orientation属性相关!垂直,水平显示状态,拆分条的位置大小当然不同!

//指定拆分器面板之一保持不变 调节拆分器,使用panel1或panel2面板不会改变大小; FixedPanel FixedPanel{get;set;} FixedPanel枚举: 有三个值;None(默认值), Panel1 ,Panel2; 确定调整SplitterContainer控件后,哪个面板将保持不变!调整拆器容器大小时,可以保持哪个面板不变时, 才设置此属性,如果容器不会改变,也不用设置此属性!

//设置拆分器离容器的初始大小,拆分条左或上边缘离容器的初始宽度。 int SplitterDistance{get;set;} 像素为单位,默认值为40 ,在移动拆分器时,这个值是变化的,计算左边缘或上边缘的距离! 拆分器的初始距离.

//设置拖动拆分条(器)移动的增量大小, 也就是拖移的速度!同样的拖动,移动的宽度可不相同。 int SplitterIncrement{get;set;} 获取设置拆分条移动的增量,默认值为1; 测试SplitterIncrement属性值的大小,可以通接受键盘上下键的,调节拆分器,IsSplitterFixed必须为true

//设置拆分条的宽度 int SplitterWidth{get;set;} 默认值为4 ,通过设置可以更改此值,使拆分条的宽度变粗!

// 获取设置拆分器与panel1的左边缘,或上边缘的距离固定大小 ;与边缘的默认大小为25 int Panel1MinSize{get;set;} int Panel2MinSize{get;set;} 此属性作用比较大,可控制拆分器的活动范围大小,也就是左右面板中固定的大小面积,拆分器不能 进行拖放进入的区域。
把该属性设置为0;表示拆分器可以到过缘。

//设置拆分器的Panel1 Panel2折叠或展开; bool Panel1Collapsed{get;set;} bool Panel2Collapsed{get;set;}

注意:Panel1Collapsed属性,true为拆叠,false展开为默认值, 在拆叠状态下,不能设置SplitterDistance,SplitterWidth属性,这时的拆分器处了隐藏关闭状态, 必须在展开时才能设置这些属性!

//Pane1 与Pane2属性 拆分器的两个面板容器 SplitterPanel Panel1{get} SplitterPanel Panel2{get;} SplitterPanel:Panel类型

此属性设置如果与SplitterDistance属性冲突,拆分条的初始位置会以此属性为准进行定位!

事件介绍: 1:SplitterMoving事件 拆分器移动时发生;拆分条移动过程中发生! 委托类型;SplitterCancelEventHandler 数据类型为:SplitterCancelEventArgs :CancelEventArgs             数据成员为:SplitX,SplitY,MouseCursorX,MouseCursorY,表示在工作区,鼠标指针,拆分条的坐      标值。

SplitX SplitY X坐标点指的是拆分器与容器距离,垂直Y为0      MouseCursorX MouseCursorY 表示鼠标指针在工作的位置点坐标

2: SplitterMoved事件

拆分器移动后发生; 委托类型;SplitterEventHandler 数据类型;SplitterEventArgs :EventArgs
         数据成员;SplitX,SplitY,X,Y 表示在工作区,鼠标指针,拆分条的坐标值,这都是移动后的位置值!

Moving事件是指,鼠标按住拆分器,不放,进行移动时,发生,只要拆分器移动就会发生,不移则事件不会发生! Moved事件是指,移动拆分器之后,释放鼠标时,发生的!它是Moving事件之后发生!

小结:

控件的Dock属性如果设置成Fill,窗体的单击事件,不会被触发;因为控件遮挡住了!

发现C#winform编程中不常用的控件(一)<FlowLayoutPanel控件><拆分器控件Splitcontainer >的更多相关文章

  1. C# winform编程中多线程操作控件方法

    private void Form1_Load(object sender, EventArgs e) { Thread newthread = new Thread(new ThreadStart( ...

  2. socket编程中客户端常用函数

    1 常用函数 1.1   connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...

  3. .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件

    系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...

  4. Shell 编程中的常用工具

    文件查找 find 命令 语法格式 find命令总结: 常用选项: -name 查找/etc目录下以conf结尾的文件 find /etc -name "*.conf" -inam ...

  5. socket编程中服务器端常用函数 以及简单实现

    1 常用函数 1.1   socket() int socket(int family, int type, int protocol); socket()打开一个网络通讯端口,如果成功的话,返回一个 ...

  6. 学习Java绝对要懂的,Java编程中最常用的几种排序算法!

    今天给大家分享一下Java中几种常见的排序算法的Java代码 推荐一下我的Java学习羊君前616,中959,最后444.把数字串联起来!     ,群里有免费的学习视频和项目给大家练手.大神有空时也 ...

  7. C# WINFORM 编程中,选择**文件夹**而不是文件的方法(转)

    我们选择文件可以用 OpenFileDialog ,但是文件夹有两种方法. 法一: 用C#的FolderNameEditor类的子类FolderBrowser类来实现获取浏览文件夹对话框的功能.下面来 ...

  8. socket编程中客户端常用函数 以及简单实现

    1 常用函数 1.1   connect() int connect(int sockfd, const struct sockaddr *servaddr, socklen_taddrlen); 客 ...

  9. 在WinForm编程中犯的一些错误

    1.一直以为,MouseClick事件在鼠标点击时发生,MouseDoubleClick事件在鼠标双击时发生.那么在单击鼠标时会调用MouseClick事件处理程序,双击鼠标时会调用MouseDoub ...

随机推荐

  1. Springboot演示小Demo

    模拟数据库演示springboot小测试 1.编写一个实体类:user package com.wisezone.test; import java.io.Serializable; public c ...

  2. Linux-CentOS7 安装VMware Workstation 12

    转自:http://blog.csdn.net/aoshilang2249/article/details/48656107 1.下载VMware 衔接地址 http://www.vmware.com ...

  3. 【LeetCode】006. ZigZag Conversion

    The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...

  4. 【redis】redis的 key的命名规则

    key的命名规则 定义为 MS-TEN:SESSION_KEY_IN_LOGIN_NAME:fqh 使用:进行分割,这样存入redis的是有层次结构的,如下

  5. 编译PHP扩展的通用方法

    以安装swoole扩展为例: 步骤1: wget  pecl.php.net/get/swoole-1.7.21.tgz  (下载swoole打包文件) 步骤2: tar zxvf swoole-1. ...

  6. 机器学习:模型泛化(LASSO 回归)

    一.基础理解 LASSO 回归(Least Absolute Shrinkage and Selection Operator Regression)是模型正则化的一定方式: 功能:与岭回归一样,解决 ...

  7. PostgreSQL 备份和恢复

    备份和恢复有三种不同的基本方法来备份PostgreSQL数据SQL转储文件系统级备份File system level backup连续归档 1. SQL转储 pg_dump dbname > ...

  8. 数据校验(2)--demo1---bai

    input_score.jsp <%@ page language="java" import="java.util.*" pageEncoding=&q ...

  9. Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa)

    Socket中常见的几个转换函数(htonl,htons,ntohl,ntohs,inet_addr,inet_ntoa) htonl() htons() ntohl() ntohs()及inet_n ...

  10. oracle常用函数总结(一)

    最近在读数据库存储过程,或者在xml里写sql时用到数据库函数,笔者觉得有必要总结一下,当然有的函数笔者也很懵逼,不过可以问度娘啊!好了!开始正题. )s from dual;--1 若nvl第一个参 ...