Winforms - элементы управления в панели обрезаны - PullRequest
1 голос
/ 06 ноября 2011

Я динамически добавляю элементы управления к элементу управления FlowLayoutpanel. Элементами управления, которые я добавляю в панель Flowlayout, являются панели, содержащие два элемента управления: метку различного размера и комбинированный список с фиксированным размером.

Проблема в том, что ярлык и выпадающий список отображаются горизонтально на их содержащей панели (ну, я думаю). Comboboxs обрезаны и едва видны. Я попытался установить для свойства Autosize каждой панели значение true, но это не помогает.

Есть ли способ расположить элементы управления на панели сверху вниз (сложить их)? Может ли быть проблема с FlowlayoutPanel?

Спасибо за помощь!

     private void PopulateQuestionFlowPanel()
        {
            foreach (var question in _viewModel.Questions)
            {
                //build question label
                var questionLabel = new Label();
                questionLabel.Text = question.Text;
                questionLabel.Tag = question.Id;

                //build answer combobox
                var answerCombo = CreateQuestionComboBox(question);

                //put question and answer into panel            
                var controlPanel = new Panel();
                controlPanel.Tag = question.Id;
                controlPanel.AutoSize = true;
                controlPanel.Controls.Add(questionLabel);
                controlPanel.Controls.Add(answerCombo);

                //add panels to flowpanel
                questionPanel.Controls.Add(controlPanel);
            }
        }

1 Ответ

0 голосов
/ 06 ноября 2011

Может быть, лучше использовать TableLayoutPanel и удалить все столбцы, чем вы могли бы сделать это:

int i = 0;
foreach (var question in _viewModel.Questions)
            {
                //build question label
                var questionLabel = new Label();
                questionLabel.Text = question.Text;
                questionLabel.Tag = question.Id;

                //build answer combobox
                var answerCombo = CreateQuestionComboBox(question);

                //put question and answer into panel            
                var controlPanel = new Panel();
                controlPanel.Tag = question.Id;
                controlPanel.AutoSize = true;
                controlPanel.Controls.Add(questionLabel);
                controlPanel.Controls.Add(answerCombo);

                //add panels to flowpanel
                tableLayoutPanel1.SetRow(controlPanel, i);
                tableLayoutPanel1.RowCount = i++;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...