首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改图片框中的图像不起作用

动态更改图片框中的图像不起作用
EN

Stack Overflow用户
提问于 2016-05-13 05:12:36
回答 3查看 820关注 0票数 0

几周来,我断断续续地试图弄清楚这一点。

在我的VB2010 Forms应用程序中,我有许多图片框,这些图片框使用拖放方法填充来自其他图片框的图像。这没问题,它工作得很好。图片框都在一个组框容器中。

问题是试图通过拖放操作在两个图片框之间交换图像。换句话说,pBox1有image.x,pBox2有image.y。将图像从pBox2拖放到pBox1;然后pBox1将拥有来自pBox2的image.y,pBox2将拥有来自pBox1的image.x。

在这个例子中,以下是我到目前为止拥有的代码:

代码语言:javascript
复制
Private Sub pBox2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pBox1.MouseDown
     strImageSource = "pBox2" 'strImageSource is a global string variable
     [other stuff]
 end sub

^这会将源图片框的名称保存为全局字符串。

代码语言:javascript
复制
Private Sub pBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles pBox1.DragDrop
    For Each Control as PictureBox in GroupBox1.Controls.OfType(of PictureBox)()
     if Control.Name = strImageSource then
       Control.Image = pBox1.Image
     end if
   next

   dim imgTarget as Image = CType((e.Data.GetData(DataFormats.Bitmap)), Bitmap)
   pBox1.image = imgTarget
 End Sub

^这将搜索以strImageSource (" pBox2 ")命名的图片框,并将pBox1的内容复制到其中,然后将pBox2中的图像拖放到pBox1中。

我希望这是有意义的。

这会正确地将图像从pBox2放置到pBox1中,但不会将图像从pBox1切换到pBox2。pBox2是空白的。但是,调试表明pBox2中的图像并不是空的;它确实包含一个位图。它只是看不见而已。

现在,作为测试,我为每个部分添加了一行代码,用于更改图片框的背景颜色:

代码语言:javascript
复制
 For Each Control as PictureBox in GroupBox1.Controls.OfType(of PictureBox)()
   if Control.Name = strImageSource then
     Control.Image = pBox1.Image
     Control.BackColor = color.red
   end if
next

背景颜色也会发生变化。这告诉我For Each section正在工作--它正在查找控件并更改背景颜色。它只是没有显示图像。

我是不是漏掉了什么?

谢谢!

EN

Stack Overflow用户

发布于 2016-05-13 22:25:28

好吧,这太愚蠢了。

我做的每件事都是正确的,只有一个非常愚蠢的例外。在代码的另一部分中,莫名其妙地,我在图像被替换后清除了图片框中的内容。这可能是我试图做的与这个问题无关的事情的残余,我只是从来没有纠正过它。

我为此道歉,并感谢所有的回复。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37197473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档