2015-05-05 3 views
0

Я пытаюсь добавить элемент списка в свой список из другого класса.C# Добавить элемент списка из класса

Так вот главный класс:

 private void btnOpnemenLinks_Click(object sender, EventArgs e) 
    { 
     string bedragInCenten = tbEuroLinks.Text + tbCentenLinks.Text; 
     if(int.TryParse(tbEuroLinks.Text, out getal) && int.TryParse(tbCentenLinks.Text, out getal)) 
     { 
      if (Convert.ToInt32(tbEuroLinks.Text) >= 0 && (Convert.ToInt32(tbCentenLinks.Text) >= 0)) 
      { 
       bankrekeningLinks.NeemOp(Convert.ToInt32(bedragInCenten)); 
       update(); 
       string bedrag = returnBedragLinks(); 

      } 
      else 
       MessageBox.Show("Negatieven getallen worden niet geaccepteerd."); 
     } 
     else 
      MessageBox.Show("Ongeldige invoer."); 

Так что, если все это правда, он пойдет: bankrekeningLinks.NeemOP(); ->

public void NeemOp(int bedrag) 
    { 
     // bedrag in hele centen, negatieve bedragen worden genegeerd. 
     // vul zelf in 
     if (bedrag <= saldo) 
     { 
      this.saldo = this.saldo - bedrag; 

     } 
     else 
     { 
      MessageBox.Show("Onvoldoende saldo."); 
     } 

Если это также верно, я хочу добавить что-то в моем ListBox из:

if (bedrag <= saldo) 
     { 
      this.saldo = this.saldo - bedrag; 
      // ADD ITEM IN LIST BOX <--------- 
     } 

Найти такие вещи, как это:

http://www.dreamincode.net/forums/topic/60477-adding-items-to-a-listbox-from-a-class/

+0

Является ли это просто мной или на самом деле является ключом _data model_ здесь, а не потоком управления? Есть ли у вас опыт программирования OO? –

+0

'lbOverzicht.Items.Add (/ * tijd & datum * /" Rekening #: 2001 opgenomen: "+ bedrag);' эта строка, кажется, добавляет элемент в ListBox. Не работает ли подобный код в 'NeemOp'? –

+0

Эй, укладчик класса, на самом деле, я только что начал ИТ-школу. –

ответ

1

Я не полностью обязательно о дизайне, который у вас есть, но он выглядит так:

У вас есть GUI класс wh если элементы управления определены и расположены.

Тогда есть класс, где кнопка нажата событие подписался и обрабатывается (класс Program.cs или, возможно, тот же класс?)

private void btnOpnemenLinks_Click(object sender, EventArgs e) 

И тогда у вас есть еще один класс, где NeemOp(int bedag) определен и bankrekeningLinks является экземпляром этого класса.

Вы хотите обновить ListBox в функции NeemOp, но, скорее всего, класс, в котором находится функция NeemOp, не знает о ListBox. Это может быть исправлено либо путем пропускания ListBox в качестве параметра в функцию NeemOp следующим образом:

public void NeemOp(int bedrag, ListBox listBox) 
    { 
      // bedrag in hele centen, negatieve bedragen worden genegeerd. 
      // vul zelf in 
      if (bedrag <= saldo) 
      { 
       this.saldo = this.saldo - bedrag; 
       listBox.Items.Add(saldo); 

      } 
      else 
      { 
       MessageBox.Show("Onvoldoende saldo."); 
      } 

    } 

Вызывается:

bankrekeningLinks.NeemOp(Convert.ToInt32(bedragInCenten), listBox1); 

Однако это плохой дизайн, как caluclation нового Saldo не должны действительно должны заботиться о GUI, это работа расчета. Изменение NeemOp для возвращения нового сальдо будет шагом в правильном направлении.

public int NeemOp(int bedrag) 
     { 
       // bedrag in hele centen, negatieve bedragen worden genegeerd. 
       // vul zelf in 
       if (bedrag <= saldo) 
       { 
        this.saldo = this.saldo - bedrag; 
        return this.saldo; 

       } 
       else 
       { 
        MessageBox.Show("Onvoldoende saldo."); 
        return this.saldo; 
       } 

     } 

Вызывается:

var newSaldo = bankrekeningLinks.NeemOp(Convert.ToInt32(bedragInCenten)); 
listBox1.Items.Add(newSaldo); 
update(); 
string bedrag = returnBedragLinks(); 

Конечно, вы можете проверить, что NeemOp был преуспевающим, и в то же время, возможно, переместить все GUI/MesageBoxes код в том же классе, private void btnOpnemenLinks_Click(object sender, EventArgs e) и изолировать калорийности класса NeemOp. Удовольствие.

+0

Эй, да, это работает для меня спасибо! Это школьные примеры для изучения C#, только что начатые, а не трудные примеры, но спасибо вам, verry mutch!: P –

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