C# 使用“更改浮点值”;选择的组合框“更改”;
我试图通过带有if语句的组合框来更改浮点值 Id不必是if语句,但我认为这是最符合逻辑的方法 但是,当我尝试使用组合框上选定的更改中的if语句更改浮点值时,会出现名称空间错误和定义错误 我希望它能反映程序中稍后的一个公式,超出范围,因此浮动会根据他们在下拉列表中选择的内容进行更改 我的“如果”陈述C# 使用“更改浮点值”;选择的组合框“更改”;,c#,if-statement,combobox,C#,If Statement,Combobox,我试图通过带有if语句的组合框来更改浮点值 Id不必是if语句,但我认为这是最符合逻辑的方法 但是,当我尝试使用组合框上选定的更改中的if语句更改浮点值时,会出现名称空间错误和定义错误 我希望它能反映程序中稍后的一个公式,超出范围,因此浮动会根据他们在下拉列表中选择的内容进行更改 我的“如果”陈述 public void cmbSubClass_SelectedIndexChanged(object sender, EventArgs e) { if (c
public void cmbSubClass_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbSubClass.SelectedIndex == 1)
{
public float a = 0.86F;
public float b = 0.61F;
public float c = 1.86F;
}
if (cmbSubClass.SelectedIndex == 2)
{
public float a = 0.64F;
public float b = 0.75F;
public float c = 1.42F;
}
}
公式示例:
float zFormula = (a * val1) + (b * val2) + (c * val3)
textbox1.Text = Convert.ToString(zFormula);
我试图用一个类复制同样的东西,但我似乎不知道怎么做。可能类似这样(使用绑定):
公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
私有void Form1\u加载(对象发送方、事件参数e)
{
列表数据=新列表();
添加(新数据(“Set1”、1、2、3”);
添加(新数据(“Set2”,3,2,3));
comboBox1.DataSource=数据;
comboBox1.DisplayMember=“Name”;
}
私有无效组合框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
var set=comboBox1.SelectedValue作为数据;
var val1=1;
float zFormula=(set.A*val1)+(set.B*val1)+(set.C*val1);
textbox1.Text=Convert.ToString(zFormula);
}
}
公共类数据
{
公共数据(字符串名称、浮点a、浮点b、浮点c)
{
名称=名称;
A=A;B=B;C=C;
}
公共字符串名称{get;protected set;}
公共浮点A{get;protected set;}
公共浮点B{get;protected set;}
公共浮点C{get;protected set;}
}
声明和设置变量是两件不同的事情 在@LarsTech说
public float a;
public float b;
public float c;
public float d;
public float f;
public void cmbSubClass_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbSubClass.SelectedIndex == 0)
{
txtOutput.Text = ("class1 selected");
a = 1.12F;
b = 2.32F;
c = 3.32F;
d = 4.31F;
f = 5.23F;
}
if (cmbSubClass.SelectedIndex == 1)
{
txtOutput.Text = ("class2 selected");
a = 0.01F;
b = 0.21F;
c = 0.23F;
d = 0.75F;
f = 1.66F;
}
if (cmbSubClass.SelectedIndex == 2)
{
txtOutput.Text = ("class3 selected");
a = 1.02F;
b = 1.22F;
c = 1.42F;
d = 1.62F;
f = 1.32F;
}
}
问题解决了
我收到大量错误…
然后你不告诉我们错误?不要在If块中声明变量-它们仅限于该代码块。这意味着它会破坏代码,不会出现“1”错误。它只是说当前上下文中不存在任何内容,或者没有任何内容包含定义。即使它是公共的,它也会被锁在街区里?那么,如何更改组合框选择的值呢?声明和设置变量是两件不同的事情。移动公共浮动a代码>etc位于SelectedIndexChanged行上方。声明和设置变量是两件不同的事情。
完美,修复了它。)谢谢。建议使用Michal Zych答案而不是硬编码索引。如果您决定将Sorted
属性设置为true
,那么您的代码将无法工作;如果您决定更改可用值列表,那么代码将非常脆弱,因为如果您忘记更新所有代码,您很容易失去同步。
public float a;
public float b;
public float c;
public float d;
public float f;
public void cmbSubClass_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbSubClass.SelectedIndex == 0)
{
txtOutput.Text = ("class1 selected");
a = 1.12F;
b = 2.32F;
c = 3.32F;
d = 4.31F;
f = 5.23F;
}
if (cmbSubClass.SelectedIndex == 1)
{
txtOutput.Text = ("class2 selected");
a = 0.01F;
b = 0.21F;
c = 0.23F;
d = 0.75F;
f = 1.66F;
}
if (cmbSubClass.SelectedIndex == 2)
{
txtOutput.Text = ("class3 selected");
a = 1.02F;
b = 1.22F;
c = 1.42F;
d = 1.62F;
f = 1.32F;
}
}