从Click事件方法获取变量并在另一个类中使用它

时间:2018-05-23 06:41:24

标签: c# wpf

我试图从第一次使用类创建国际象棋棋盘。我正在努力从第一个单击事件方法获取变量并在DrawRow方法中使用它。我知道它还没有完成,但我真的很喜欢这一点并且很难继续

private void ToolStripMenuItemDrawBoard_Click(object sender, EventArgs e)
{
    //Prevents errors using try catch method
    Graphics paper = pictureBoxDisplay.CreateGraphics();
    try
    {
        int boardSize = int.Parse(ToolStripTextBoxBoardSize.Text);

        if (boardSize > MIN_BOARD_SIZE || boardSize < MAX_BOARD_SIZE)
        {
            DrawRow();
        }
        else
        {
            MessageBox.Show("Between 2-10");
            //Clears all textboxes
            foreach (Control c in Controls)
            {
                if (c is TextBox)
                {
                    c.Text = "";
                }
            }
        }
    }
}

public void DrawSquare()
{
    Graphics paper = pictureBoxDisplay.CreateGraphics();
    paper.DrawRectangle(penBlack, positionX, positionY, WIDTH, HEIGHT);
}

public void DrawRow(ToolStripMenuItemDrawBoard_Click(boardSize))
{
    int columnNum = 0;
    int counter = 0;
    Graphics paper = pictureBoxDisplay.CreateGraphics();
    while (boardSize < columnNum)
    {
        DrawSquare();
        if ((counter % 2) == 0)
            paper.FillRectangle(brDarkBrown, positionX, positionY, WIDTH, HEIGHT);
        else if ((counter % 2) != 0)
            paper.FillRectangle(brLightBrown, positionX, positionY, WIDTH, HEIGHT);
        positionX = positionX + Width;
        columnNum += 1;
    }
}

1 个答案:

答案 0 :(得分:1)

我的问题看起来很清楚。无论如何,我无法相信这就是你所说的。

private void ToolStripMenuItemDrawBoard_Click(object sender, EventArgs e)
{
    //Prevents errors using try catch method
    Graphics paper = pictureBoxDisplay.CreateGraphics();
    try
    {
        int boardSize = int.Parse(ToolStripTextBoxBoardSize.Text);

        if (boardSize > MIN_BOARD_SIZE || boardSize < MAX_BOARD_SIZE)
        {
            // Pass your board size to DrawRow()
            DrawRow(boardSize);
        }
        else
        {
            // ..
        }
    }
}

// Declare your parameter (int boardsize)
public void DrawRow(int boardSize)
{
    // boardSize accessable here
}

你明白了。由于这个标记我建议你阅读C#编码(或通用编码)的基础知识。

相关问题