繁体   English   中英

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

[英]How do I set the image of a PictureBox through code in a class that inherits PictureBox?

我是C#的新手,我想使用所说的语言在Visual Studio中创建一个国际象棋游戏项目。 主要计划涉及创建一个名为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){/*...*/}

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

class Piece : PictureBox

这使该条件成立:

Pawn is PictureBox

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

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

问题的第二部分,构造函数链接, 在这里介绍
PictureBox除了默认构造函数外没有其他任何东西,因此是否传递构造函数参数的问题已过时。 您可以依靠框架始终调用默认构造函数,而无需为此编写代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM