2013-11-06 2 views
0

Я пытаюсь создать форму, в которой пользователь может заполнить текстовое поле и нажать кнопку, а информация о том, что они набрали в текстовом поле, будет отображаться ниже. В моем случае это история транзакций и может быть очень длинной, намного длиннее, чем страница. У меня есть способ записи информации на экране (Примечание: Это только одно значение несколько для каждого элемента, один элемент в каждой строке):Как обновить страницу winforms?

for (int ii = 0; ii <= Quantitys.Length - 2; ii++) 
{ 
    Controls.Add(new Label 
    { 
     Name = "QuantityLabel", 
     Location = new Point(25, (30 * ii) + 250), 
     AutoSize = true, 
     Text = Quantitys[ii] 
    }); 
} 

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

Но я не знаю, как я мог очистить страницу, когда пользователь хочет что-то еще отображаемое. Какой был бы лучший способ сделать это? Благодаря!

+5

Почему бы не использовать сетку, чтобы показать это табличные данные? – Yuck

+2

Я предполагаю, что вам нужно будет сослаться на все ваши динамически созданные элементы управления (возможно, в «List » или что-то еще), а затем удалить их из формы. Кажется, действительно ручное. Я полагаю, что сетка с привязкой к данным, в которой вы просто измените свой «DataSource», будет проще * *. – David

+0

@Yuck Спасибо! Я не знал, что есть контроль сетки, я довольно новичок в VS. Я попытаюсь выяснить, как это работает, спасибо! – Nathan

ответ

0

Поместите ярлыки внутри панели и очистите панель, когда что-то еще нужно.

Добавить:

panel1.Controls.Add(new Label()); 

Clear:

panel1.Controls.Clear(); 

Лучше объяснил:

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 


      for (int i = 1; i < 13; i++) 
      { 
       panel1.Controls.Add(new Label 
       { 
        Location = new Point(10, 10+(i*30)), 
        Text = i.ToString() 
       }); 

      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      panel1.Controls.Clear(); 
     } 
    } 
} 
+2

Гораздо проще использовать GridDataView imo – Nathan

+0

Хорошо, используйте то, что, whatevet делает вас счастливыми! – marko

Смежные вопросы