【问题标题】:Change Image in a form when the image is selected in another form在另一个表单中选择图像时更改表单中的图像
【发布时间】:2013-01-30 14:06:53
【问题描述】:

我决定制作一个纸牌游戏来帮助我学习如何使用 Visual Studio 2010 在 C# 中编程。

我的目标: 我希望能够:

  1. 在一张表格 (cardTableForm) 上更改卡片组 (dealButton) 背面的图像
  2. 当我单击optionsForm 中的图片框时,以匹配不同表单(optionsForm) 上的图片框(blackCheckerDeck) 中的图像。

我的代码

 //Changes the deck design to blackChecker when the blackChecker design is selected.
 private void blackCheckerDeck_Click(object sender, EventArgs e)
   {
       cardTableForm.dealButton.Image = this.blackCheckerDeck.Image;
   }

我的问题

最后一行“cardTableForm.dealButton”的部分有如下错误

An object reference is required for the non-static field, method, or property 'WindowsFormsApplication1.cardTableForm.dealButton'

根据本网站的建议,我已经将 (dealButton) 和 (blackCheckerDeck) 的属性更改为

Modifiers: Public

【问题讨论】:

    标签: c# visual-studio-2010


    【解决方案1】:

    cardTableForm 是一个类。您需要使用实例(对象)来修改交易按钮图像。

    当您创建 Option 表单时,您需要为其提供 cardTableForm 的实例。

    所以假设你在cardTableForm有这样的东西

    void OnShowOptions()
    {
       var options = new OptionsForm();
       options.CardTable = this;  // tell options which card form to play with
       ...
    }
    

    在选项表单中

    public CardTableForm CardTable;
    
    void blackCheckerDeck_Click(object sender, EventArgs e)
    {
       CardTable.dealButton.Image = this.blackCheckerDeck.Image;
    }
    

    【讨论】:

    • 感谢您的帮助。 CardTable.dealButton.Image = this.blackCheckerDeck.Image;当我调试上面给我 NullReferenceException 是未处理的对象引用未设置为对象的实例。
    • (dealButton) 已设置为图像 (dealDeck)。 (blackCheckerDeck) 正在替换该图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多