问题标签 [picturebox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
21213 浏览

c# - c#picturebox内存释放问题

我是 C# 的新手。我必须在工作线程中反复刷新 GUI 图片框。图像是从使用 GetImage 方法轮询驱动程序的相机获取的,该方法检索要显示的图像。即使我使用指令“使用”分配位图并显式调用 GC,内存似乎也永远不会被释放。

工作线程是这样的:

虽然 DrawPicture 方法类似于

问题出现了

pic.Image = System.Drawing.Image.FromHbitmap(bmp.GetHbitmap());

事实上,评论那行代码,垃圾收集就可以正常工作。更好的是,问题似乎出在

System.Drawing.Image.FromHbitmap(bmp.GetHbitmap())

有什么建议可以解决这个内存泄漏?

非常感谢!

0 投票
2 回答
6253 浏览

winforms - 如果您想在 datagridview 中显示图像,winform .net 的最佳方式

net webdeveloper,通常不制作任何 win32 应用程序。但现在我必须这样做。我有一个包含大约 2000 个条目的列表。每个条目都应显示为带有文本框的标签和另一个标签和图片。我用flowlayoutpanel做了这个,我对条目做了一个foreach,为每个条目制作了一个带有标签、文本框、标签和图片框的面板。

现在,当它超过 1000 个条目时,我遇到了渲染问题。所以我读过我应该使用列表视图或数据网格视图。

现在我有一个这样的datagridview:

但问题是 datagridview 上的位图真的很慢!我之前拥有的图片框选项和面板要快得多。我该如何解决这个问题?

第二个问题是:当我想跟踪第二列中所做的更改时,我需要哪个事件?

有一件事:图像在线可用,因此“pd.ProductImage”是一个网址

0 投票
2 回答
4537 浏览

c# - 在 PictureBox 中绘图时,PictureBox.Refresh() 很慢

我在 Visual Studio 2008 中有一个 Windows 窗体应用程序 - PictureBox.Refesh() 方法导致在 PictureBox 上绘图时出现延迟。有没有任何方法可以毫不拖延地给出相同的结果?

0 投票
3 回答
6214 浏览

c# - 在面板中移动图片框

我有一个 C#、WindowsForms 项目,我创建了一个panel包含pictureBox比他的父级大得多的项目。

我转身panel.AutoScrolltrue我想做的是把它拖pictureBox进去,panel而不是抓住一个卷轴并移动它。

即,当我抓取图像并将光标向左和向下移动时,我希望获得与使用panel's 卷轴相同的行为。

怎么做 ?

0 投票
1 回答
5607 浏览

c# - C# Panel.BackgroundImage + 透明控件 = 闪烁?

我有一个Panel带有 jpg 的BackgroundImage(带有BackgroundImageLayout = Stretch)。在面板上,Controls我添加了一些PictureBoxes带有透明边框的 PNG。显示它不会产生任何问题,但移动(框是可拖动的)会产生任何问题PictureBoxes

结果是移动PictureBox“干扰”BackgroundImage并降低了性能。我拖得越快,它对 的干扰就越大BackgroundImage,反之亦然。

如何解决这个问题呢?

0 投票
3 回答
6269 浏览

.net - 加载带有动画 GIF 的 PictureBox 后,“GDI+ 中发生一般错误”

我在 .NET 2.0 中有一个 Windows 窗体应用程序,窗体上有一个 PictureBox,我通过设置 PictureBox 的 ImageLocation 属性将其加载为动画 GIF。当动画渲染下一帧时,我得到以下异常和堆栈跟踪:

0 投票
1 回答
5459 浏览

c# - PictureBox 上的图形透明度

首先,这不是让 PictureBox 控件透明。这是关于完全不透明的“画布”上的位图透明度。

PictureBox 将始终具有白色背景的 300*300 大小。控件不需要透明度。

我需要的是将透明矩形(或其他任何东西)绘制到图片框上的方法,因此已经存在的任何东西都可以“透过”矩形看到。

说我有以下代码

这将在白色画布的中间绘制一个红色矩形。现在,我需要包含另一个矩形的图片上的另一个(透明)“层”,但一个是透明的。

我可以试试

由于我通过指定其 alpha = 128 来使用颜色,因此生成的矩形应该是透明的,因此第一个红色矩形应该可以通过另一个绿色矩形看到。

但是,这不会正确发生。我可以看到新绿色矩形后面的红色矩形,但绿色矩形中与红色矩形不重叠的部分将保持完全不透明。但是,如果我将颜色的 alpha 值设置为某个非常小的值(例如 1-5),则整个矩形将看起来是透明的。这在我看来是不正常的 - 5/255 只是半透明,而 128/255 根本不透明......如果之前使用 g.DrawString() 绘制了一个字符串,则该字符串要么显示在后面绿色矩形或不是,取决于透明度。例如,如果 Alpha 大于或等于(大约)40,则字符串根本不可见,如果小于 40,则会显示,对于较小的 alpha 值更可见,直到 alpha = 0。

这个画笔(从 Argb 颜色创建时)是如何应用的?我错过了什么吗?对我来说,设置透明画笔似乎使背景“更明显”,而不是设置对象“不那么明显”。

感谢您对建议的任何回复。

[编辑]似乎我在应用程序逻辑中有一个讨厌的错误,所以绘图程序发生在一个循环中,所以当我积累一定数量的透明矩形时,它们变得越来越粗。

代码从循环中取出后可以正常工作。

我的错。

0 投票
2 回答
1749 浏览

c# - WinForm:拖动鼠标时选择框闪烁

我在图片框中制作了一个单击拖动选择框。在我使用的图片框 Paint 事件处理程序中

并更新矩形并刷新鼠标移动事件处理程序中的图片框。

只要鼠标停留在右下角(即向右/向下拖动),选择框看起来就很平滑。但是,如果我想将鼠标向左或向上拖动,则必须不断地重新设置 rectangle.X/rectangle.Y 并且该框会非常明显地闪烁。

有没有更好/更有效的绘图方法?非常感激!

0 投票
3 回答
17238 浏览

c# - 如何加载图像,然后等待几秒钟,然后播放 mp3 声音?

按下按钮后,我想显示一个图像(使用图片框),等待几秒钟,然后播放 mp3 声音,但我没有让它工作。要等待几秒钟,我使用System.Threading.Thread.Sleep(5000). 问题是,图像总是在等待时间之后出现,但我希望它先显示,然后等待,然后播放 mp3 ......我尝试使用WaitOnLoad = true但它不起作用,它应该先加载图像并继续阅读下一行代码?

这是我尝试过的代码(不起作用):

我还尝试使用“LoadAsync”加载图像并将代码等待并在“LoadCompleted”事件中播放 mp3,但这也不起作用......

0 投票
1 回答
1617 浏览

c# - 将PNG图像动态添加到图片框?

我无法通过代码将包含 alpha chanel 的 PNG 图像动态添加到图片框中,因为它总是用黑色替换透明区域。有没有办法做到这一点?