C#移动及改变控件大小

//代码比较简单,就不多解析了。  

#region 移动窗体保存数据

        Point mouseOff;//鼠标移动位置变量
        bool leftFlag; //标志是否为左键
        bool largeFlag; //标志是否同时改变宽度及高度
        bool widthFlag; //标志是否改变宽度
        bool heightFlag;//标志是否改变高度

        /// <summary>
        /// 鼠标移动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            Point mouseSet = Control.MousePosition;
            if (leftFlag)
            {
                //改变宽高
                if (largeFlag)
                {
                    int dw = mouseSet.X - this.Location.X;
                    int dh = mouseSet.Y - this.Location.Y;
                    this.Width = dw;
                    this.Height = dh;
                }
                //改变宽度
                else if (widthFlag)
                {
                    int dw = mouseSet.X - this.Location.X;
                    this.Width = dw;
                }
                //改变高度
                else if (heightFlag)
                {
                    int dh = mouseSet.Y - this.Location.Y;
                    this.Height = dh;
                }
                //移动位置
                else
                {
                    mouseSet.Offset(mouseOff.X, mouseOff.Y); //设置移动后的位置
                    this.Location = mouseSet;
                }
            }
            else
            {
                //设置改变窗体宽高的标志
                if ((this.Location.X + this.Width - mouseSet.X) < 10 && (this.Location.Y + this.Height - mouseSet.Y) < 10)
                {
                    this.Cursor = Cursors.SizeNWSE;
                    largeFlag = true;
                }
                //设置改变窗体宽度的标志
                else if ((this.Location.X + this.Width - mouseSet.X) < 10)
                {
                    this.Cursor = Cursors.SizeWE;
                    widthFlag = true;
                }
                //设置改变窗体高度的标志
                else if ((this.Location.Y + this.Height - mouseSet.Y) < 10)
                {
                    this.Cursor = Cursors.SizeNS;
                    heightFlag = true;
                }
                //设置移动位置的标志
                else
                {
                    this.Cursor = Cursors.Default;
                    largeFlag = false;
                    widthFlag = false;
                    heightFlag = false;
                }
            }
        }

        /// <summary>
        /// 鼠标按下
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;
            }
        }
        /// <summary>
        /// 鼠标弹起
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {

                leftFlag = false;//释放鼠标后标注为false;
            }
        }
        #endregion
时间: 2024-10-07 00:50:30

C#移动及改变控件大小的相关文章

C++ MFC 改变控件大小和位置

用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置. void MoveWindow(int x,int y,int nWidth,int nHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度.高度:第二种用法给出存放位置的CRect对象:例: CWnd *pWnd; pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号 pWn

android 动态改变控件位置和大小 .

动态改变控件位置的方法: setPadding()的方法更改布局位置. 如我要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(),  ImageView.getPaddingTop()+200, ImageView.getPaddingRight(),  ImageView.getPaddingBottom()); 动态改变控件大小的方法: 1.声明控件参数获取对象 LayoutParams lp: 2.获取控件

C:\\MFC控件大小随窗体大小而改变

一.大小和位置都改变 1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小. 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(): 注意if(nType==1) return;这一句必须添加,否则最小化恢复的时候会出错. [cpp]?view plaincopy void?CPaperManagementDlg::OnSize(UINT?nType,?int?cx,?int?cy)??? {?? ????CDialog::OnSiz

winform 控件大小随着窗体自适应

3个方法: #region 改变控件大小 //获取控件原始信息 protected void GetAllInitInfo(Control ctrlContainer) { //int tempWidth = Screen.PrimaryScreen.Bounds.Width / 5 * 4; //int tempHeight = Screen.PrimaryScreen.Bounds.Height / 5 * 4; if (ctrlContainer.Parent == this)//获取窗体

MFC中改变控件的大小和位置(zz)

用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置. void MoveWindow(int x,int y,int nWidth,int nHeight); void MoveWindow(LPCRECT lpRect); 第一种用法需给出控件新的坐标和宽度.高度: 第二种用法给出存放位置的CRect对象: 例: CWnd *pWnd; pWnd = GetDlgItem( IDC_EDIT1 );    //获取控件指针,IDC_EDIT1为控件

MFC对话框最大化、最小化、全屏显示、可拉伸、(控件大小动态化)、滚动条

1.点击对话框,在属性里:border改为resizing,可拉伸 Maximize Box 改为True Minimize Box 改为True Vertical Scrollbar改为 true,显示滚动条 titlebar改为false,题目消失 2.对话框全屏显示: OnInitDialog()中,也就是初始显示状态是全屏 int   cx,cy; cx   =   GetSystemMetrics(SM_CXSCREEN); cy   =   GetSystemMetrics(SM_C

通过代码改变控件的布局

在安卓代码编写过程中,一般都是通过xml的形式来规划界面组件的布局,然后在对应的activity的子类中通过id找到相对应的控件.但出于何种各样的需要,我们需要通过代码来改变控件的位置,可以通过如下的两种方式来改变: 一. 通过view的layout(left,right,top,down)来改变的.可以用view的getLeft,getRight,getTop,getBotton方法来获取Left,Right,Top,Botton的值,然后加上算出的偏移  (event.getRawX())得

WPF 中动态改变控件模板

在某些项目中,可能需要动态的改变控件的模板,例如软件中可以选择不同的主题,在不同的主题下软件界面.控件的样式都会有所不同,这时即可通过改变控件模板的方式实现期望的功能. 基本方法是当用户点击切换主题按钮是加载新的资源字典,并使用新加载的资源字典替代当前的资源字典这时要用到ResourceManager. 假设现有两个不同的资源字典文件Dictionary1.xaml和Dictionary2.xaml存在于Themes文件夹内: 在MainPage中使用其中一个资源字典作为默认样式文件: <Win

运行时手动伸缩控件大小

public partial class PanelX : UserControl { private Point oldXY; //private static PanelX instance; //public DataRow dr = null; public delegate void RowSelectedEventHandler(object sender, EventArgs e); public event RowSelectedEventHandler RowSelected;