如何通过继承PictureBox的类中的代码设置PictureBox的图像?

时间:2018-03-04 20:30:50

标签: c#

我是C#的新手,我想使用这种语言在Visual Studio中制作一个Chess Game项目。主要计划包括创建一个名为Piece的虚拟类,它继承PictureBox类(我将Piece类视为一个具有附加功能的图像),它还有一个抽象的Move方法,将在继承类中重写(Pawn,Rook等) )。 每种类型的片段都应根据片段的颜色设置PictureBox的图像,我希望在调用该类的构造函数时发生这种情况。如何设置PictureBox的图像?

我见过的大多数问题都是相似的,但PictureBox没有继承,它是一个嵌套类,或者我根本不理解人们谈论的很多功能,这就是为什么我问了一个非常具体问题。

我的Pawn类的构造函数目前如下所示:

    public Pawn(Coordinate coordinate, int color): base(coordinate, color)
    {
        if(color==BLACK)
        {
            //Get the BlackPawn.png image and use it
        }
        if(color==WHITE)
        {
            //Get the WhitePawn.png image and use it
        }
        //Other stuff
    }

另外,如果我继承了PictureBox类,我还需要在Piece类构造函数中调用它的构造函数,并注意它的参数,就像我对Pawn构造函数所做的那样:

    Pawn(Coordinate coordinate, int color): base(coordinate, color){/*...*/}

1 个答案:

答案 0 :(得分:0)

继承意味着你在某处声明了

 where
    (@Pstring is null or @Pstring = sometable.somecharcolumn)
    and
    (@Pint is null or @Pint = sometable.someintcolumn)

这使得这个条件成立:

class Piece : PictureBox

我们还可以说,Pawn is PictureBox PictureBox通过Pawn的基类。 要访问基类的任何私有成员,只需使用它们,Piece关键字的限定是可选的。

this

问题的第二部分,构造函数链接,是covered here this.Image = ...; this.Visible = true; 除了default constructor之外没有任何其他内容,因此是否传递构造函数参数的问题已经过时了。您可以依赖框架始终调用默认构造函数,而无需为此编写代码。