2015-11-27 3 views
0

У меня есть этот пользовательский элемент управления, который является в основном панель:Динамически добавлено управление winforms Не отображается?

class ResultPanel : Panel { 
    Label scoreValueLabel = new Label(); 

    public ResultPanel() : base(){ 
     scoreValueLabel.AutoSize = true; 
     scoreValueLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 
     scoreValueLabel.Location = new System.Drawing.Point(265, 99); 
     scoreValueLabel.Name = "scoreValueLabel"; 
     scoreValueLabel.Size = new System.Drawing.Size(49, 25); 
     scoreValueLabel.TabIndex = 10; 
     scoreValueLabel.Text = "+10"; 
     Controls.Add(scoreValueLabel); 
    } 
} 

И я пытаюсь добавить его в панель в качестве обработчика события:

private void ResultsReceivedHandler(object sender, List<QuestionResult> results) { 

     ResultPanel resultPanel = new ResultPanel(); 
     allResultsPanel.Controls.Add(new ResultPanel()); 
     resultPanel.Anchor = ((AnchorStyles.Top | AnchorStyles.Left) | AnchorStyles.Right); 
     resultPanel.BorderStyle = BorderStyle.FixedSingle; 
     resultPanel.Location = new Point(0, 155); 
     resultPanel.Name = "questionResultPanel"; 
     resultPanel.Size = new Size(325, 148); 
     resultPanel.TabIndex = 0; 

    } 

Я знаю, что экземпляр ResultPanel может отображаться во всехResultsPanel, потому что я добавил (используя представление дизайнера) ResultPanel для allResultsPanel, который имеет тот же размер, что и в верхней части allResultsPanel и который отображается.

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

Так почему я могу видеть управления добавил через точки зрения дизайна, но не один добавил динамически?

+1

Вы хотите добавить один 'ResultPanel' и настройка другого, Вы имели в виду' allResultsPanel.Controls .Add (resultPanel); '? –

+0

@ Lasse V. Karlsen, спасибо, почему вы не оставили это в качестве ответа? – xFlRSTx

+0

На мобильном устройстве, и Reza отправил его сейчас, так что не нужно. –

ответ

1

При настройке resultPanel:

ResultPanel resultPanel = new ResultPanel(); 
resultPanel.Anchor = ((AnchorStyles.Top | AnchorStyles.Left) | AnchorStyles.Right); 
resultPanel.BorderStyle = BorderStyle.FixedSingle; 
resultPanel.Location = new Point(0, 155); 
resultPanel.Name = "questionResultPanel"; 
resultPanel.Size = new Size(325, 148); 
resultPanel.TabIndex = 0; 

Вы добавляете еще одну новую панель в allResultsPanel

allResultsPanel.Controls.Add(new ResultPanel());