使用Winforms中的方法更改按钮背景图像

时间:2017-07-27 14:02:07

标签: c# winforms

我的表格代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace YAHTZEE
{
    public partial class GameMainWindow : Form
    {
        public GameMainWindow()
        {
            InitializeComponent();
        }

        private void buttonRollDice_Click(object sender, EventArgs e)
        {
            DiceManager dm = new DiceManager();
            dm.intDice_1_Roll();
            dm.intDice_2_Roll();
            dm.intDice_3_Roll();
            dm.intDice_4_Roll();
            dm.intDice_5_Roll();

            Class1 c1 = new Class1();
            c1.buttonDice_1Manager();

        }
    }
}

我为所有骰子生成随机数的课程。 这完全没问题。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace YAHTZEE
{
    public class DiceManager
    {
        Random rnd = new Random();

        public int intDice_1_Roll()
        {
            int intDice_1 = rnd.Next(1, 7);
            return intDice_1;
        }

        public int intDice_2_Roll()
        {
            int intDice_2 = rnd.Next(1, 7);
            return intDice_2;
        }

        public int intDice_3_Roll()
        {
            int intDice_3 = rnd.Next(1, 7);
            return intDice_3;
        }

        public int intDice_4_Roll()
        {
            int intDice_4 = rnd.Next(1, 7);
            return intDice_4;
        }

        public int intDice_5_Roll()
        {
            int intDice_5 = rnd.Next(1, 7);
            return intDice_5;
        }
    }
}

更改按钮背景图像的类。 这就是我的问题所在,如果我把它放在我的表单上,代码就可以工作但是当我把它作为另一个类的方法时它什么也没做。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using YAHTZEE.Properties;

namespace YAHTZEE
{
    class Class1 : GameMainWindow
    {
        public void buttonDice_1Manager()
        {
            DiceManager dm = new DiceManager();

            if (dm.intDice_1_Roll() == 1)
            {
                buttonDice_1.BackgroundImage = Properties.Resources.Dice1;
            }
        }
    }
}

我错过了什么吗?

P.S。我希望它们能够分开,因为有很多事情要考虑我的代码很长。

1 个答案:

答案 0 :(得分:0)

在class1中,尝试将您的方法更改为:

public System.Drawing.Bitmap dice1Manager(int diceRoll)
{
    if(diceRoll == 1)
        return Properties.Resources.Dice1;
}

在您的主要课程中,更改您拥有的内容:

private void buttonRollDice_Click(object sender, EventArgs e)
{
    DiceManager dm = new DiceManager();
    Class1 c1 = new Class1();

    button_dice1.BackgroundImage = c1.dice1Manager(dm.intDice_1_Roll());

    dm.intDice_2_Roll();
    dm.intDice_3_Roll();
    dm.intDice_4_Roll();
    dm.intDice_5_Roll();
 }