Я понимаю, что подобный вопрос задавали здесь несколько раз, но я не могу понять, почему мой код не работает.

Я пытаюсь добавить панель только тогда, когда переменная int selected равна 0. Когда я запускаю свой код, я не вижу свою панель, как мог бы ожидать.

Мой код ниже:

if (selected == 0)
{      
    Panel p = new Panel();
    p.Height = 637;
    p.Width = 449;
    p.Location = new Point (269, 449);
    p.BorderStyle = BorderStyle.FixedSingle;
    p.Visible = true;
    p.BackColor = Color.White;
    p.AllowDrop = true;
    p.Dock = DockStyle.Top;
    p.Show();

    MessageBox.Show("Now we should see the Panel");                
}

Что я делаю не так?

0
kwyattm 23 Дек 2014 в 01:02

3 ответа

Лучший ответ

Вы создаете Panel, но не добавляете его ни в какую коллекцию элементов управления.

Вы можете сделать это с помощью этого кода:

if (selected == 0)
{      
    Panel p = new Panel();
    p.Height = 637;
    p.Width = 449;
    p.Location = new Point (269, 449);
    p.BorderStyle = BorderStyle.FixedSingle;
    p.Visible = true;
    p.BackColor = Color.White;
    p.AllowDrop = true;
    p.Dock = DockStyle.Top;
    ///p.Show();
    this.Controls.Add(p);

    MessageBox.Show("Now we should see the Panel");                
}

Если вы хотите добавить элементы управления к своему Panel, не забудьте:

  • установить .Location относительно Panel
  • используйте p.Controls.Add(yourNewControl)
1
tezzo 23 Дек 2014 в 09:06

Вы создаете панель, но не добавляете ее в родительский элемент управления (который, как я предполагаю, является формой).

Вам нужно будет добавить что-то вроде следующего:

this.Controls.Add(p);

Итак, ваш общий код будет примерно таким:

if (selected == 1)
{
  var p = new Panel();
  // Set some properties
  this.Controls.Add(p);
}
3
Cameron 22 Дек 2014 в 22:05

Вам нужно добавить свою панель в родительский элемент управления:

this.Controls.Add(panel);

Я думаю, вам следует прочитать этот Как программно добавлять элементы управления в формы Windows во время выполнения с помощью Visual C #

3
Jack1987 22 Дек 2014 в 22:14