C#百问--C#中如何获取comboBox所选的文本内容?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace chapter4
{
public partial class FrmFunctionParam : Form
{
public FrmFunctionParam()
{
InitializeComponent();
}
public float WageCal(string aslevel, float oldwage)
{
float newwage = 0;
switch (aslevel)
{
case "高级设计师":
newwage = oldwage * (1 + 0.5f);
break;
case "中级设计师":
newwage = oldwage * (1 + 0.3f);
break;
case "初级设计师":
newwage = oldwage * (1 + 0.2f);
break;
case "助理设计师":
newwage = oldwage * (1 + 0.1f);
break;
default :
newwage = oldwage * (1 + 0.05f);
break;
}
return newwage;
}
public void WageCalRef(string aslevel,ref float oldwage)
{
switch (aslevel)
{
case "高级设计师":
oldwage = oldwage * (1 + 0.5f);
break;
case "中级设计师":
oldwage = oldwage * (1 + 0.3f);
break;
case "初级设计师":
oldwage = oldwage * (1 + 0.2f);
break;
case "助理设计师":
oldwage = oldwage * (1 + 0.1f);
break;
default:
oldwage = oldwage * (1 + 0.05f);
break;
}
}
private void btnCal_Click(object sender, EventArgs e)
{
float PersonOldWage = Convert .ToSingle ( txtWage.Text.Trim());
string PersonLevel = cmbLevel.Text; //bug - cmbLevel.SelectedText修改为:cmbLevel.Text
//lblMsg.Text += WageCal(PersonLevel ,PersonOldWage ).ToString ();
WageCalRef(PersonLevel , ref PersonOldWage);
//PersonOldWage = WageCal(PersonLevel, PersonOldWage);
lblMsg.Text += PersonOldWage.ToString();
}
}
}
仔细研究代码:string PersonLevel = cmbLevel.Text; //bug - cmbLevel.SelectedText修改为:cmbLevel.Text
该行语句,如果采用string PersonLevel = cmbLevel.SelectedText,将出现什么错误?通过实验可以发现计算出来的工资为1050。问题就出在C#中获取comboBox所选的文本内容应该使用的是cmbLevel.Text而不是cmbLevel.SelectedText。