簡體   English   中英

C#從類中添加列表框項

[英]C# Add listbox item from class

我正在嘗試從另一個類向我的列表框中添加一個列表框項目。

所以這是主要的類:

        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.");
        }

如果這也是真的,我想在列表框中添加以下內容:

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/

我不確定您的設計,但看起來像:

您具有定義和定位控件的GUI類。

然后是一個類,其中單擊按鈕事件被預訂並在其中進行處理(Program.cs類還是可能是同一類?)

private void btnOpnemenLinks_Click(object sender, EventArgs e)

然后,您有另一個類,其中定義了NeemOp(int bedag) ,而bankrekeningLinksbankrekeningLinks的一個實例。

您想更新NeemOp函數中的ListBox,但是最有可能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);

但是,由於新Saldo的計算這一糟糕的設計實際上不必關心GUI,它的工作是計算。 更改NeemOp以返回新的Saldo將是朝正確方向邁出的一步。

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)相同的類中private void btnOpnemenLinks_Click(object sender, EventArgs e)並將計算結果隔離到NeemOp類中。 有趣的運動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM