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

问题描述 投票:0回答:1

我是C#的新手,我想用Visual语言在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){/*...*/}
c#
1个回答
0
投票

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

class Piece : PictureBox

这使得这个条件成立:

Pawn is PictureBox

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

this.Image = ...;
this.Visible = true;

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

© www.soinside.com 2019 - 2024. All rights reserved.