Получение переменной из метода события Click и использование ее в другом классе - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь сделать шахматную доску, используя классы с первого раза.Я пытаюсь получить переменную из метода события первого клика и использовать ее в методе 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 голосов
/ 23 мая 2018

Ваш вопрос мне понятен.В любом случае, я не могу поверить, что это то, о чем ты говоришь.

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 # -кодирования (или общего кодирования).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...