【问题标题】:Put image on dynamically created button将图像放在动态创建的按钮上
【发布时间】:2013-02-21 12:00:03
【问题描述】:

我已经动态创建了一个按钮,现在我需要将图像放在上面,它保存在我的硬盘上。我试过做

btndynamic.image=((Sytem.Drawing.Image)(resources.GetObject("button.Image")));

但它给了我一个错误: 当前上下文中不存在名称“资源”

然后我尝试了:

btndynamic.image=Image.FromFile(@"images\image1.jpg");

再次给了我一个错误: 验证文件是否存在于指定位置。

那么我做错了什么,或者有没有其他方法。

【问题讨论】:

  • 如何创建和初始化resources 变量?
  • 您是否将图像添加到项目的资源中?如果是这样,这个资源是如何命名的?此外,对于您提供相对路径的第二个选项,您的 debug 目录中是否真的有一个 image 文件夹?
  • 关于Image.FromFile记住代码目录和sturtup目录不一样
  • 尝试使用绝对路径,如 c:\yourimage.jpg
  • @ppetrov 是的图像已添加到资源文件中,您的意思是如何命名该资源。对于第二部分,我的项目中有一个 images 文件夹。

标签: c# winforms button


【解决方案1】:

您可以在表单上使用ImageList 控件。此控件在运行时不可见,可让您稍后在表单中添加需要使用的图像。 您在表单上添加此控件的方式与添加按钮的方式完全相同,您可以在Components 选项卡下的工具箱中找到它。 在属性中,您将看到一个Images 属性,您只需对其进行编辑,您将看到一个对话框,您可以在其中从磁盘添加图像资源。只需添加您需要的内容并为添加的每个图像设置属性(如键)。

那么你所要做的就是从这个控件中获取你的按钮所需的图像:

你有两种方法,通过使用索引

dynamicButton.Image = imageList1.Images[index];

或者一把钥匙

dynamicButton.Image = imageList1.Images["your_image_key"];

这样您的图像可以包含在您的程序集中,而您不必担心路径

如果您需要有关它的更多信息,请尝试以下链接:

http://social.msdn.microsoft.com/Forums/eu/csharplanguage/thread/9cda50a5-8eba-4e1f-87ee-7486352c0907

How to use imageList Control

【讨论】:

  • 能否请您解释一下从未使用过的图像列表控件。谢谢
【解决方案2】:

您可以将图像添加到资源中,然后将按钮图像属性分配给它,如下所示:

NewButton.Image = global::YOURPROJECTNAME.Properties.Resources.YOURRESOURCENAME;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多