Создание C # winform простых динамических элементов управления - PullRequest
0 голосов
/ 12 января 2009
        private void CreateNewControl()
        {
            List<Control> list = new List<Control>();
            TableLayoutPanel layout = new TableLayoutPanel();
            layout.Dock = DockStyle.Fill;
            this.Controls.Add(layout);
            layout.ColumnCount = 3;
            layout.GrowStyle = TableLayoutPanelGrowStyle.AddRows;

            for (int i = 0; i < 9; i++)
            {

                if (wantedType == DevExpress.XtraEditors.CheckEdit)
                {

                    CheckBox chk = new CheckBox();
                    chk.Tag = i;

                    layout.Controls.Add(chk);
                    layout.AutoScroll = true;

                }


                if (wantedType ==  LabelControl)
                {
                    Label chk = new Label();

                    chk.Tag = i;

                    layout.Controls.Add(chk);
                    layout.AutoScroll = true;

                }

// Я хочу установить ширину столбцов макета, чтобы при отображении меток они не группировались и выглядели точно так же, как при отображении флажков. Как это сделать?

Ответы [ 2 ]

4 голосов
/ 12 января 2009

В общем, что я делаю:

  • Используйте IDE в проекте-прототипе, чтобы создать форму с элементами управления в нужных мне позициях
  • Посмотрите на исходный код, созданный IDE (в файле MyFormName .Designer.cs), чтобы увидеть, какой исходный код сгенерирован IDE для создания этих элементов управления
  • Создайте мою собственную форму в моем реальном проекте с кодом, написанным вручную, который основан на том, что я узнал из прототипа, который я создал с помощью IDE
0 голосов
/ 15 апреля 2012
// Loop through all the controls you want to add.
// Add a integer field that measures the highest width of each control like

int _iMaxWidth = 0;

for (int i=0; i < TotalControls.Count; ++i)
{
   if ( control[i].Width > _iMaxWidth)
      _iMaxWidth = control[i].Width
}

// Then you'll know what the width size of the column should be.
Col.Width = iMaxWidth + 2; // +2 to make things a little nicer.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...