1

私は、C# Windows アプリケーション (Barbara Doyle が著者) に関する本の 1 章全体を読み、その中の問題を試みました。リストボックスとチェックボックスの基本原則を正しく理解していないはずです。

私の質問は、このため、リストボックスをどのようにクリアするかです。そのメソッドはリストボックス全体をクリアするので、という意味ではありませんpastyBox.Items.Clear();が、新しい順序で新しく開始したい場合に期待するように、どうすれば「リセット」できますか(リセットという言葉の方が適切かもしれません) )? また、何をしているように見えても、値をゼロに設定しtxtBoxTotal = "";たり、値をゼロにしようとしても、テキストボックスをクリアできません。

私が完全に見逃しているものがあり、誰かがそれを指摘できることを願っています。多分それは非常に簡単な間違いか、私が知らない知識です。これは、チェックボックスをクリアする方法のコードです。テキストボックスとリストボックスを解決しようとした数行のコードを削除しました

配列を実行したので、最後に選択されたインデックスであると思った....もう手がかりがないようです。

編集::今のところ、アプリケーションをロードすると、バクラバとお茶をクリックすると、テキスト ボックスに 3.80 が表示されます。クリアすると、お茶の前の矢印が削除され、バクラバはまだ選択されており、txtbox は選択されています。変更しないテキストボックスをクリアし、選択したバクラバの選択を解除したい

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    decimal[] pastryPrice = { 3.00m, 2.85m, 3.25m, 4.35m, 3.40m, 2.30m, 2.90m,
    1.75m,2.00m, 1.50m };
    decimal pastry;
    decimal total;
    decimal drinkCost = 0;

    private void pastryBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (pastryBox.SelectedIndex)
        {
            case 0:
                pastry = pastryPrice[0];
                break;
            case 1:
                pastry = pastryPrice[1];
                break;
            case 2:
                pastry = pastryPrice[2];
                break;
            case 3:
                pastry = pastryPrice[3];
                break;
            case 4:
                pastry = pastryPrice[4];
                break;
            case 5:
                pastry = pastryPrice[5];
                break;
            case 6:
                pastry = pastryPrice[6];
                break;
            case 7:
                pastry = pastryPrice[7];
                break;
            case 8:
                pastry = pastryPrice[8];
                break;
            case 9:
                pastry = pastryPrice[9];
                break;
        }
    }
    private void txtBoxTotal_TextChanged(object sender, EventArgs e)
    {
        total = pastry + drinkCost;
        txtBoxTotal.Text = Convert.ToString(total);
    }
    private void ComputeDrinkCost_CheckedChanged(object sender, EventArgs e)
    {
        if (this.Coffee.Checked)
        {
            drinkCost = 2.00m;
        }
        if (this.Tea.Checked)
        {
            drinkCost = 1.80m;
        }
        if (this.Water.Checked)
        {
            drinkCost = 0.00m;
        }
        if (this.Cream.Checked)
        {
            if ((this.Coffee.Checked) || (this.Tea.Checked))
            {
                drinkCost += 0m;
            }
            else
            {
                drinkCost += .50m;
            }
        }
        if (this.Sugar.Checked)
        {
            if ((this.Coffee.Checked) || (this.Tea.Checked))
            {
                drinkCost += 0m;
            }
            else
            {
                drinkCost += .30m;
            }
        }
        if (this.WhippedCream.Checked)
        {
            drinkCost += .60m;
        }
        if (this.Cocoa.Checked)
        {
            drinkCost += .90m;
        }
        if (this.Cinnamon.Checked)
        {
            drinkCost += .25m;
        }
    }
    private void exitToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }
    private void clearOrderToolStripMenuItem_Click(object sender, EventArgs e)
    {
        this.clearDrinks();
    }
    public void clearDrinks()
    {
        Tea.Checked = false;
        Coffee.Checked = false;
        Water.Checked = false;
        Cream.Checked = false;
        Sugar.Checked = false;
        Cinnamon.Checked = false;
        WhippedCream.Checked = false;
        Cocoa.Checked = false;
    }
}
}
4

2 に答える 2

1

リストボックスを「リセット」することの意味がわかりませんが、使用できます

pastryBox.Items.Clear();
pastryBox.Items.AddRange(pastryPrice)

編集があった場合、これは listBox を設定された状態にします。

使用することもできます

txtBoxTotal.Text = string.Empty;

また

txtBoxTotal.Text = "0";

データバインドする方が良いでしょうが、それについて読む必要があります。HTH。

于 2013-09-09T23:40:25.470 に答える
1

クリアするにはTextbox

txtBoxTotal.Text = ""

のためにlistbox

何を質問しようとしているのか理解できませんか?質問をもっと明確にしてください........

于 2013-09-09T23:40:35.507 に答える