Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法获取要在windows窗体应用程序中显示的扩展标签类_C#_Winforms - Fatal编程技术网

C# Can';无法获取要在windows窗体应用程序中显示的扩展标签类

C# Can';无法获取要在windows窗体应用程序中显示的扩展标签类,c#,winforms,C#,Winforms,我目前有一个类扩展了System.Windows.Forms.Label类。我想给扫雷舰编一个知识作业。它基本上向常规标签添加了一些功能,然后在form1.cs部分中实例化 public partial class Cell : System.Windows.Forms.Label { private bool hasBomb; private bool isRevealed; private int neighbourBombCount; static int

我目前有一个类扩展了
System.Windows.Forms.Label
类。我想给扫雷舰编一个知识作业。它基本上向常规标签添加了一些功能,然后在form1.cs部分中实例化

public partial class Cell : System.Windows.Forms.Label
{
    private bool hasBomb;
    private bool isRevealed;
    private int neighbourBombCount;
    static int BombAmount;

    // Properties
    public bool HasBomb
    {
        get { return hasBomb; }
        set { hasBomb = value; }
    }

    public bool IsRevealed
    {
        get { return isRevealed; }
        set { isRevealed = value; }
    }

    public int NeighbourBombCount
    {
        get { return neighbourBombCount; }
        set { neighbourBombCount = value; }
    }


    // constructors
    public Cell()
    {
        hasBomb = false;
        isRevealed = false;
        neighbourBombCount = 0;
        this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
        this.Size = new System.Drawing.Size(50, 50);

    }
然后是表格1.cs:

    public partial class Form1 : Form
{
    // Public variable declarations
    int chance;
    Random rand1 = new Random();
    static int bombAmount;

    public Form1()
    {
        InitializeComponent();
        this.AutoSize = false;
        this.Width = 420;
        this.Height = 420;
        createGrid();
    }

    public void createGrid()
    {
        for (int i = 0; i < 8; i++)
        {
            for (int j = 0; j < 8; j++)
            {

                grid[i][j] = new Cell();
                grid[i][j].Name = "grid" + i.ToString() + j.ToString();
                grid[i][j].Location = new System.Drawing.Point(i * 49, j * 49);
                grid[i][j].Size = new System.Drawing.Size(50, 50);
                grid[i][j].TabIndex = 0;


                chance = rand1.Next(0, 6);
                if (chance % 6 == 0 && bombAmount < 10)
                {
                    grid[i][j].HasBomb = true;
                    bombAmount++;
                }
            }
        }

        for (int i = 0; i < 8; i++)
        {
            for (int j = 0; j <8; j++)
            {
                this.Controls.Add(grid[i][j]);
            }
        }
    }
private Cell[][] grid = new Cell[8][];
公共部分类表单1:表单
{
//公共变量声明
机会;
Random rand1=新的Random();
静态输入量;
公共表格1()
{
初始化组件();
this.AutoSize=false;
这个。宽度=420;
这个。高度=420;
createGrid();
}
public void createGrid()
{
对于(int i=0;i<8;i++)
{
对于(int j=0;j<8;j++)
{
网格[i][j]=新单元();
grid[i][j].Name=“grid”+i.ToString()+j.ToString();
网格[i][j]。位置=新系统。图纸。点(i*49,j*49);
网格[i][j]。大小=新系统。图纸。大小(50,50);
网格[i][j].TabIndex=0;
机会=随机数1。下一个(0,6);
如果(机会%6==0&&10)
{
网格[i][j].HasBomb=true;
bombAmount++;
}
}
}
对于(int i=0;i<8;i++)
{

对于(int j=0;j您没有初始化锯齿数组的第二部分

尝试添加以下内容:

public void createGrid() {
  for (int i = 0; i < 8; i++) {
    grid[i] = new Cell[8];
public void createGrid(){
对于(int i=0;i<8;i++){
网格[i]=新单元[8];

使其可见您能详细说明这一部分吗?
grid[i][j].Visible=true;
在上面的代码中发布您的版本。您的版本应该会产生异常,因为您没有初始化数组的第二部分。