首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

阻止picturebox离开窗体底部

可以通过以下步骤实现:

  1. 首先,确保你已经在窗体上添加了一个PictureBox控件,并设置了其初始位置。
  2. 在窗体的代码文件中找到PictureBox控件的事件处理程序,一般是在Form.Designer.cs文件中。
  3. 在PictureBox的事件处理程序中,找到控件的移动相关事件,例如MouseDown、MouseMove或者MouseUp事件。
  4. 在移动事件中,添加代码以检测PictureBox是否即将离开窗体底部。
代码语言:csharp
复制

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)

{

代码语言:txt
复制
   // 获取PictureBox的当前位置
代码语言:txt
复制
   int currentX = pictureBox1.Location.X;
代码语言:txt
复制
   int currentY = pictureBox1.Location.Y;
代码语言:txt
复制
   // 获取PictureBox的宽度和高度
代码语言:txt
复制
   int pictureBoxWidth = pictureBox1.Width;
代码语言:txt
复制
   int pictureBoxHeight = pictureBox1.Height;
代码语言:txt
复制
   // 获取窗体的宽度和高度
代码语言:txt
复制
   int formWidth = this.Width;
代码语言:txt
复制
   int formHeight = this.Height;
代码语言:txt
复制
   // 判断PictureBox是否即将离开窗体底部
代码语言:txt
复制
   if (currentY + pictureBoxHeight >= formHeight)
代码语言:txt
复制
   {
代码语言:txt
复制
       // 将PictureBox的位置设置为窗体底部
代码语言:txt
复制
       pictureBox1.Location = new Point(currentX, formHeight - pictureBoxHeight);
代码语言:txt
复制
   }

}

代码语言:txt
复制

上述代码中,我们通过比较PictureBox的当前位置和窗体的高度,判断是否即将离开窗体底部。如果是,则将PictureBox的位置设置为窗体底部。

  1. 保存并运行程序,当你尝试将PictureBox拖动到窗体底部时,它将被自动停留在窗体底部,从而阻止其离开。

这样,通过在PictureBox的移动事件中添加逻辑判断,我们可以有效地阻止PictureBox离开窗体底部。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VB 子窗体PictureBox控件挡住无法显示

1、问题描述     VB做机房收费系统的时候,用的MDI主窗体,在主窗体上加了一个Picturebox控件,运行的时候,点了子窗体,但是却没有出现,后来才发现,子窗体Picturebox控件给当在了后面...2、问题原因    在MDI程序中,子窗体实际位于MDIClient里,就是说,子窗体的父窗体是MDIClient,而PictureBox和MDIClient属于同一级的    层次结构    ThunderMDIForm-MDIForm1...   --MDIClient    ---ThunderFormDC-Form1  子窗体1    ---ThunderFormDC-Form2  子窗体2    --ThunderPictureBoxDC...   MDI的PictureBox 3、解决办法   用到的函数——SetParent函数 Private Declare FunctionSetParent Lib "user32" (ByVal...MDI窗体,要用一般的Form窗体,否则的话,当你运行的时候,它会提醒你——“实时错误426”,只允许一个MDI窗体

1.4K20
  • C#基础学习之——(一)Dock与Anchor

    二、使用步骤 1.设计界面 我是先自己画了一个用户控件,分别有一个pictureBox,两个listView和一个splitContainer共四个控件,其中两个listView控件和一个splitContainer...这时候就用到了Dock与Anchor属性了,我先将pictureBox与splitContainer两个控件打包在一个panel里面(将pictureBox的Dock属性设置为Top确保其与panel上边缘绑定在一起...Left后,应该是按照panel控件的右边缘位置设置自身的左边缘,与设计时的相对位置保持不变),将点位实时数据groupBox的Anchor属性设置为Top,Left,Right,Bottom,确保其底部...,左边,右边随主窗体底部位置变化而变化,(由于pannel的Anchor属性默认为Top,Left,则其Bottom和Right是不会随着窗体的变化而变化,故日志栏groupBox的左边缘与点位实时数据...groupBox的顶部与这个panel的底部跟右边缘的相对位置不变)。

    2.9K20

    Excel催化剂开源第9波-VSTO开发图片插入功能,图片带事件

    在VBA的方法中,还有一个方式,用窗体控件Image,可以实现图片插入后有事件关联。 窗体控件Image方法插入 但很遗憾的是,这个方法中插入的图片,当没有点选图片时,图片会有些模糊的情况。...如果换成是VSTO的宿主项PictureBox,就完美解决了。 两种不同窗体控件方式插入图片 例如下图中的,用鼠标右键事件,调出上下文菜单。...可以关联事件的插入图片方法 双击图片事件 保留有正确的原始图片纵横比例 笔者觉得这是个接近完美的解决方案(用窗体控件的方式插入图片,用户不能直接选择图片、移动图片,会有种奇怪的感觉)。...pictureBox = new PictureBox(); pictureBox.Image = img; pictureBox.SizeMode =...pictureBox = new PictureBox(); pictureBox.Image = img; pictureBox.SizeMode =

    1.4K40

    【愚公系列】2023年11月 Winform控件专题 PictureBox控件详解

    一、PictureBox控件详解PictureBox是Winform中常用的控件,可以方便地加载并显示图像。...以下是一些常见的PictureBox控件的用法:设置图像文件可以使用PictureBox的Image属性来设置图片文件,例如:pictureBox1.Image = Image.FromFile("C:...使用方法:在Winform窗体中添加一个PictureBox控件。设置PictureBox控件的SizeMode属性,使图片按照指定大小进行显示。...1.5 WaitOnLoadPictureBox控件的WaitOnLoad属性是一个布尔值属性,用于指定是否在图像加载完成前阻止控件的绘制。...首先,在Winform窗体上添加一个PictureBox控件。然后,将PictureBox的SizeMode属性设置为“Zoom”,这样就可以自动调整图片的大小来适应控件的大小。

    1.7K11

    【愚公系列】2023年12月 GDI+绘图专题 图形图像编程基础

    方法(一)、窗体设计时使用图形框对象的Image属性输入 窗体设计时使用对象的Image属性输入图像的操作如下: (1)在窗体上,建立一个图形框对象(pictureBox1),选择图形框对象属性中的Image...方法(二)、使用“打开文件”对话框输入图像 在窗体上添加一个命令按钮(button1)和一个图形框对象(pictureBox1),双击命令按钮,在响应方法中输入如下代码: private void button1...设计步骤如下: (1)建立如图7.14所示的项目界面,在窗体上加入【打开图像】命令按钮和一个PictureBox控件。...别直接画在窗体是,弄一个PictureBox 画在这上面!~ 每次重画之前,可以重绘一下PictureBox如: PictureBox1.Invalidate()....首先绘制容器里的控件,然后绘制窗体上的容器,最后再绘制窗体

    72712

    5-3 绘制图形

    因为窗体的左上角坐标为(0,0),在代码中使用的坐标定位都是相对的,相对于窗体的左上角位置。...为了看得清楚,在窗体的四周留出了一部分边缘,使用绝对像素值,将坐标原点定位在(30,窗体高度-100),按钮的上方。随着窗体大小的变化,横坐标轴根据窗体高度绘制在不同位置。 ?...图5-11 打开图像 u 实验步骤(1): 由图4-11所示,从工具箱之中拖拽PictureBox控件到窗体上,设置SizeMode属性为StretchImage,使图片适应图形框控件大小调整,可以使用...需调用图片框的刷新方法来更新图像对象:PictureBox.Refresh()。...pictureBox1.Image.Save(filename); 3.Bitmap类 封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。

    1.5K10

    C#学习系列文章之Windows窗体应用程序003

    背景 紧接着上一篇文章,我已经学习了控制台的使用,以及创建不同应用的Helloworld程序,这一篇文章,我介绍Windows窗体应用程序的简单实用,按照调用流程一步一步的操作,希望能帮助初学者也能一步一步的搭建起自己的第一个应用...完整的Windows 窗体应用程序打开和保存图片 具体的操作步骤如下: 1. 选择新建项目,选择Windows 窗体应用,并命名为showPicture。...:如果图片大于Picturebox控件大小,图片不能完全显示。...(2)AutoSize:自动调整Picturebox控件大小去适应图片的大小,图片可以完全显示。 (3)StretchImage:Picturebox控件大小不变,自动调整图像适应控件。...[rgiald3rmd.png] 然后选择保存图片,设置名称 [保存图片] 然后就有了两张图片在文件夹中 image.png 总结 这就是一个简单的Windows窗体应用程序的使用介绍。

    1.9K31

    C# PictureBox加载图片并显示进度条

    以前用winform的PictureBox时没有试过加载网络的图片,刚刚看到一段代码才了解到原来还有LoadAsync这个方法,可以异步加载图片,再加上LoadProgressChanged事件也可以获得当前加载的进度...在窗体上放一个PictureBox控件,一个按钮,一个进度条控件,再用Label来显示当前进度百分比,具体代码如下: private void button1_Click(object sender, ...EventArgs e)           {              try               {                    pictureBox1.WaitOnLoad =...catch               {                    MessageBox.Show( "网络连接失败");              }           }   给PictureBox...加上LoadProgressChanged事件,LoadAsync方法将会触发此事件,当前的进度可以从e.ProgressPercentage中取得          private void pictureBox1

    1.8K20

    vb添加GIF动态图片

    众说周知,GIF格式动画文件具有小巧、制作方便等特点,因此在网上得到广泛应用,在vb的picturebox和image控件添加图片后变成静止的了,这给我们设计VB应用程序带来了不便。...通过学习方法特别很多,而且并没有多麻烦: 一、最简单的方法 1、在picturebox控件中添加gif格式图片 首先、需要注册,注册方法:在工程中选中“引用”→引用项目ActiveMovie...其次、'在PictureBox控件中显示GIF动画(图片),凡有句柄hwnd的窗体控件均可以;在窗体Form1上添加2个命令按钮Command1,Command2和1个图片框控件Picture1。...2.选取WebBrowser控件,添加到窗体的相应位置上。 3.设计相应代码,通过使用WebBrowser控件的Navigate方法播放GIF动画文件。...三、最麻烦的方法 用PictureBox控件或Image控件或窗体的背景图片来显示动的图片,可以考虑用Timer控件使每隔一定的时间就更改一次控件的Picture属性来切换控件的图片以达到动画的效果。

    1.2K10

    【愚公系列】2023年11月 Winform控件专题 Label控件详解

    None:无边框,控件不显示边框FixedSingle:单线边框,控件顶部、底部、左侧和右侧各显示一条线Fixed3D:三维边框,控件顶部、底部、左侧和右侧各显示一条凸起或凹陷的线使用方法:1.在设计模式下...; e.Cancel = true; // 阻止焦点离开控件 }}当textBox1失去焦点时,会触发textBox1_Validating验证事件。...在该事件中,判断文本框中是否为空,如果为空则弹出提示框并阻止焦点离开控件。这样,用户就必须输入有效的值才能离开文本框。...具体而言,Dock属性可以设置为四个值:Top、Bottom、Left、Right,分别表示控件停靠在容器的顶部、底部、左侧、右侧。...最后,将该容器添加到Form窗体中。运行程序后,可以看到四个Label控件分别停靠在Panel容器的顶部、底部、左侧和右侧。

    82911

    【C#】组件分享:FormDragger窗体拖拽器

    可拖拽的地方包括不限于: 窗体、Panel、GroupBox、TabControl等容器控件的空白区; 菜单栏、工具栏、状态栏等bar的空白区,以及无效项目; Label、PictureBox、ProgressBar...EventHandler EnabledChanged; 使用挺简单,随时随地FormDragger.Enabled = true/false就能开闭拖拽功能,比如在Main函数中就可以开好,完了程序内的所有自建窗体就可以愉快的拖拽了...,但是,像消息框MessageBox、各种对话框(如打开文件对话框)等由系统提供的窗体不能拖,原因是这些窗口的消息不进入程序,需要勾子才能捕获到,犯不着(其实方案里已经实现了一个DialogDragger.cs...例如某个图片框,你希望它具备“超链”的功能,点上去时执行注册好的MouseDown事件处理方法,那么有两种方式可以实现例外: 将该控件加入例外列表:FormDragger.ExcludeControls.Add(pictureBox1...原理: 利用Application.AddMessageFilter向程序加入消息过滤器,拦截并处理发往程序窗体的鼠标左键单击消息,若满足逻辑,则拦下该消息,并往控件所在的窗体发送点击标题栏的消息,达到点击该控件时系统认为是点到窗体标题栏的效果

    1.5K20

    C#异常:在调用OLE之前,必须将当前线程设置为单线程单单元(STA)模式。

    private void PictureBox_Click(object sender, EventArgs e) { //错误内容: 在可以调用OLE之前,必须将当前线程设置为单线程单元(STA...= Image.FromFile(openfile.FileName); pictureBox.SizeMode = PictureBoxSizeMode.Zoom; //显示图片时按照原比例放大缩小...修改的方法很简单,我在这个窗体的代码中加了一个bool型变量isVirgin(不要问为什么取这个名字,问就是用来判断是不是第一次点击"上传头像"),然后添加了俩条 if 语句。 ?...private void PictureBox_Click(object sender, EventArgs e) { if(isVirgin) { Thread thread...= Image.FromFile(openfile.FileName); pictureBox.SizeMode = PictureBoxSizeMode.Zoom; //显示图片时按照原比例放大缩小

    4.5K20
    领券