在 Visual C# 中获取 Components 类以在面板中放置图像
Posted
技术标签:
【中文标题】在 Visual C# 中获取 Components 类以在面板中放置图像【英文标题】:Get Components class in Visual C# to put an image in the panel 【发布时间】:2015-03-08 18:15:21 【问题描述】:我在使用 C# 在 Visual Studio 2010 的 Forms 应用程序中创建组件类时遇到问题。我为一个游戏创建了一个目标,你应该将球扔到目标上。
这没有错误,但应用程序无法运行,只是弹出一个窗口说“Bounce 停止工作”,“Windows 正在尝试查找问题..”。如果我删除代码当然应用程序运行完全正常。
所以有些东西是错的,但我真的不支持哪部分是错的。有人有想法吗?
请忽略我的瑞典 cmets..
在我的组件类 Target.cs 中:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace Bounce
class Target : Label
public double targetPosX, targetPosY;
public Target(Image image)
Image = image;
BackColor = Color.Transparent; // Sätter bakgrundsfärgen till genomskinlig på kontrollen
Size = new Size(205, 100); // Sätter storleken på kontrollen
Visible = true; // Ser till att bollarna syns
public void ShowTarget()
targetPosX = Location.X;
targetPosY = Location.Y;
代码中的bounce.cs表单(代码相关部分):
//Target
Target target;
target = new Target(Image.FromFile("images/target.png"));
panel.Controls.Add(target);
target.Location = new Point(100, 200);
target.ShowTarget();
【问题讨论】:
您是否单步执行了您的程序?通过这种方式,您可能会发现它(确切地)在哪里崩溃。 不,实际上我没有,但我真的不记得是怎么回事了,所以当我对这个很陌生时,我就跳过了它,希望有人能马上看到问题所在;)但这是我的下一步究竟该怎么做 所以了解如何设置断点和单步执行您的代码。这些是你的朋友! dotnetperls.com/debugging 我会的,但与此同时,你知道有什么问题吗? 【参考方案1】:问题是您的图像路径无效。它应该是图像文件的完整路径。例如"c:\someDirectory\Images\target.png"
【讨论】:
我在查看目标时发现目标在代码中直接错误,但我不得不更改的图片的某些属性与路径有关我猜的图像。构建操作 - 内容复制到输出目录 - 如果更新则复制【参考方案2】:您将大小设置为 205、100,但将位置设置为 100、200
所以位置在您的矩形之外...
【讨论】:
这真的很重要,因为位置就是它在面板中的位置。以上是关于在 Visual C# 中获取 Components 类以在面板中放置图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 中从数据库中获取数据(使用 C#)时使 HTML 行可点击
如何从使用directx c# visual studio播放的视频中获取和处理每一帧(位图图像)