#c# #panel #windows-forms-designer
#c# #панель #windows-forms-designer
Вопрос:
Я хочу добавить несколько кнопок во время выполнения на существующую панель в моей форме, чтобы я мог прокручивать их на своей панели, когда количество кнопок увеличивается, и они не подходят для формы.
Я использую this.panel1.Controls.Add(this.button50[number]);
, но он не показывает кнопку на панели, как я могу показать элемент управления на панели после его добавления?
Вот мой код:
static int number = 49;
static int size = 163;
public void initialize()
{
this.button50= new System.Windows.Forms.Button[50];
}
public void makeButton()
{
if (number > 0)
{
this.button50[number] = new System.Windows.Forms.Button();
this.button50[number].Font = new System.Drawing.Font("Nazanin"
,12F,System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(178)));
size = 41 size;
this.button50[number].Location = new System.Drawing.Point(194, size);
this.button50[number].Name = "buttonPlus" number;
this.button50[number].Size = new System.Drawing.Size(151, 34);
this.button50[number].TabIndex = 24;
this.button50[number].Text = "انتخاب دستی دروس";
this.button50[number].UseVisualStyleBackColor = true;
this.panel1.Controls.Add(this.button50[number]);
number--;
}
}
//// a part of InitializeComponent() function
//
// panel1
//
this.panel1.Controls.Add(this.button50[number]);
this.panel1.AutoScroll = true;
this.panel1.Controls.Add(this.button10);
this.panel1.Controls.Add(this.button3);
this.panel1.Controls.Add(this.button8);
this.panel1.Controls.Add(this.button9);
this.panel1.Controls.Add(this.button5);
this.panel1.Controls.Add(this.button7);
this.panel1.Controls.Add(this.button6);
this.panel1.Controls.Add(this.label2);
this.panel1.Controls.Add(this.button4);
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.textBox1);
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.bindingNavigator1);
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.lable4);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(549, 306);
this.panel1.TabIndex = 0;
Комментарии:
1. проверьте ваше
button7
местоположение, чтобы убедиться, что оно не находится внеpanel1
поля зрения порта2. кнопка, которую я добавляю, не превышает размер формы и панелей, но все же она не показывает мою кнопку на панели. У меня не было проблем с добавлением кнопки в саму форму.
3. это кнопка 7 (все элементы управления при инициализации) добавляется вами вручную, не так ли? ..!!
4. нет, новые кнопки, созданные в функции makebutton (), не отображаются при их добавлении. показаны другие кнопки.
5. Несколько видимых недостатков. Используйте BringToFront(), чтобы кнопка не могла быть перекрыта другим элементом управления. Вероятно, вы хотите вызвать Focus(), чтобы панель прокручивала кнопку в поле зрения. Вы должны настроить расположение кнопки, добавив положение автопрокрутки панели. Не редактируйте сгенерированный дизайнером код.