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;
在上面的代码中发布您的版本。您的版本应该会产生异常,因为您没有初始化数组的第二部分。