Отключенные флажки в flowLayoutPanel - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь динамически создать несколько флажков в элементе управления flowLayoutPanel.

Мне удалось создать его, но они, кажется, отключены внутри панели.Я не могу проверить / снять их.Они серые и не активны.

Я полагаю, что существует свойство flowLayoutPanel, которое запрещает включение этих флажков, которые я пропускаю.

Вот мой код для flowLayoutPanel :

// 
// flowLayoutPanelForCheckBoxes
// 
this.flowLayoutPanelForCheckBoxes.Controls.Add(this.SomeCheckBox);
this.flowLayoutPanelForCheckBoxes.AutoScroll = true;
this.flowLayoutPanelForCheckBoxes.Location = new System.Drawing.Point(132, 8);
this.flowLayoutPanelForCheckBoxes.Name = "flowLayoutPanelForCheckBoxes";
this.flowLayoutPanelForCheckBoxes.Size = new System.Drawing.Size(546, 38);
this.flowLayoutPanelForCheckBoxes.TabIndex = 28;
this.flowLayoutPanelForCheckBoxes.WrapContents = false;

Для создания флажков:

private List<CheckBox> GetGeneratedCheckboxes()
{
    var generatedCheckboxes = new List<CheckBox>();

    var valuesForCheckboxes = GetCheckboxValuesFromDb(); //it returns dictionary<int, string> 

    // with some numbers and text. I think this method is not as important

    if (valuesForCheckboxes != null && valuesForCheckboxes.Count != 0)
    {
        int index = 0;
        foreach (var chbx in valuesForCheckboxes)
        {
            var checkboxToAdd = new System.Windows.Forms.CheckBox();

            checkboxToAdd.AutoSize = true;
            checkboxToAdd.Enabled = true;
            checkboxToAdd.Checked = true;
            checkboxToAdd.CheckState = System.Windows.Forms.CheckState.Checked;
            checkboxToAdd.Size = new System.Drawing.Size(84, 21);
            checkboxToAdd.UseVisualStyleBackColor = true;

            checkboxToAdd.Name = "chboxCountry" + chbx.Key;
            checkboxToAdd.Text = chbx.Value;
            checkboxToAdd.TabIndex = index + 1;

            index++;

            generatedCheckboxes.Add(checkboxToAdd);
        }
    }

    return generatedCheckboxes;
}

И он используется в методе FormLoad:

var checkboxesForPanel = GetGeneratedCheckboxes();

foreach (var checkbox in checkboxesForPanel)
{
    this.flowLayoutPanelForCheckBoxes.Controls.Add(checkbox);
}

1 Ответ

0 голосов
/ 17 декабря 2018

Код выглядит хорошо для меня.Это не проблема.Проверьте, находится ли панель макета потока в отключенном состоянии.Проверьте в конструкторе или проверьте свой код, если он становится отключенным.

...