我的问题:在选择了两个combobox
变量之后,我想将这两个变量分开并将Textbox
设置为计算结果。
两个Comboboxes
:Körpergröße& Gewicht
textbox
:BMI
首先,代码我正在使用(显然现在不工作)
protected void Körpergröße_SelectedIndexChanged(object sender, EventArgs e)
{
int a;
int b;
//In this way you can compare the value and if it is possible to convert into an integer.
if (int.TryParse(Körpergröße.SelectedItem.ToString(), out a) && int.TryParse(Gewicht.SelectedItem.ToString(), out b))
{
fillTextBox(a, b);
}
}
protected void Gewicht_SelectedIndexChanged(object sender, EventArgs e)
{
int a;
int b;
if (int.TryParse(Körpergröße.SelectedItem.ToString(), out a) && int.TryParse(Gewicht.SelectedItem.ToString(), out b))
{
fillTextBox(a, b);
}
}
private void fillTextBox(int value1, int value2)
{
BMI.Text = (value1 / value2).ToString();
}
两个comboboxes
的默认值是字符串..(“Bitteususwählen”)
图片现在的样子。选择两个int值后,计算结果应显示在BMI Textbox
。
如果有人能用一些附注的代码回答我,那将是很好的,以便我理解..
提前致谢!
答案 0 :(得分:-1)
如果没有余数,则无法划分整数值。因此,您需要将int
类型更改为float
类型:
private void Gewicht_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
float a;
float b;
if (float.TryParse(Körpergröße.SelectedItem.ToString(), out a) && float.TryParse
(Gewicht.SelectedItem.ToString(), out b))
{
fillTextBox(a, b);
string str = "";
}
}
如果划分两个整数,例如:
int k=130/150;
在现实生活中,我们知道k
将是0.86
。但是没有机会显示类型integer
的余数,因为这种类型是不可分割的。 int
类型的值不能为0,5
或8.8
。它可以只是1
,5
或任何整数类型。
但float
类型可以存储(拥有)100,5
或233.333
等值。这就是为什么你看到0
而不是你的价值的原因。
如果要限制整数值后的数字计数,可以使用.ToString()
方法的重载:
private void fillTextBox(float value1, float value2)
{
textBox.Text = ((value1 / value2)).ToString("0.00");
}
有关详细信息,请参阅Custom Numeric Format Strings on MSDN
答案 1 :(得分:-1)
我建议使用selectionChanged事件并将其附加到您的组合框,从两者中获取所选值,然后确保您没有任何null
值(string
可以为null,但{ {1}}不能)更像这样的东西:
XAML
int
C#
<ComboBox Name="cb1" SelectionChanged="GetText" SelectionMode="Single">
<ComboBoxItem>1</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
<ComboBoxItem>3</ComboBoxItem>
</ComboBox>
<ComboBox Name="cb2" SelectionChanged="GetText" SelectionMode="Single">
<ComboBoxItem>1</ComboBoxItem>
<ComboBoxItem>2</ComboBoxItem>
<ComboBoxItem>3</ComboBoxItem>
</ComboBox>