从单个列表框中获取两个附加值c#

时间:2015-10-28 16:39:12

标签: c# wpf listbox

因此,在我的课程中,它应该能够解决我们学校系统的成绩。  我有两个文本框,一个按钮和一个列表框,当我按下按钮时,它会从文本框中获取两个不同的值并将其放入列表框中。现在我的问题是如何从这两个文本框中获得两个不同的求和值。我得到了两个值,我只是简单地将它们分开并得到我的答案,对不起我的英语不好,我也是这个程序的新手。

public MainWindow()
{
    InitializeComponent();
    listbox.Items.Add(string.Format("Unit\tGrade\tEquivalent"));
}
double grade = 0;
private void genbox_Click(object sender, RoutedEventArgs e)
{
    double units = Convert.ToDouble(unitval.Text);

    if (g.Text == "A" || g.Text=="a")
    {
        grade = 4;
    }
    else if (g.Text == "B+" || g.Text == "b+")
    {
        grade = 3.5;
    }
    else if (g.Text == "B" || g.Text == "b")
    {
        grade = 3;
    }
    else if (g.Text == "C+" || g.Text == "c+")
    {
        grade = 2.5;
    }
    else if (g.Text == "C" || g.Text == "c")
    {
        grade = 2;
    }
    else if (g.Text == "D" || g.Text == "d")
    {
        grade = 1;
    }
    else if (g.Text == "F" || g.Text == "f")
    {
        grade = 0;
    }
    else if (g.Text == "FD" || g.Text == "Fd" || g.Text == "fd" || g.Text == "fD")
    {
        grade = 0;
    }
    else 
    {
        MessageBox.Show("Grade is not Determined");
        return;
    }

    g.Clear();
    unitval.Clear();
    double equiv = units * grade;

    listbox.Items.Add(units + "\t" + grade + "\t" + equiv );

    double tunits =+ units;
    double tequiv =+ equiv;

    double qpival = tequiv / tunits;

    qpi.Text = qpival.ToString();

}

2 个答案:

答案 0 :(得分:0)

好像你错过了演员:

listbox.Items.Add(units + "\t" + grade + "\t" + equiv );

单位,等级和等值被声明为双

这应该可以解决问题:

listbox.Items.Add(units.ToString() + "\t" + grade.ToString() + "\t" + equiv.ToString() );

编辑:

listbox.Items.Add(string.Format("Unit\tGrade\tEquivalent"));

String.Format没有那样工作, 它应该是:

String.Format("{0}\t{1}\t{2}", parameter0, parameter1, parameter2);

因此您可以将代码重新格式化为

listbox.Items.Add(String.Format("{0}\t{1}\t{2}", units.ToString(), grade.ToString(), equiv.ToString()));

答案 1 :(得分:0)

变化:

if (g.Text == "F" || g.Text == "f")

对此:

if(g.Text.ToUpper().Equals("F"))

将所有if更改为:

private int getGrade(string x)
{
if( .... ) { return ...; }
if( .... ) { return ...; }
}

也许您应该将ListBox更改为ListWiev,使用Listbox就像一个表,您可以在ListWiev中获取表。