我希望能够单击 Compute Pay 按钮来浏览员工对象并显示每个对象的薪水。问题是它不会超过第一个。对不起,如果答案很明显。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private const int SIZE = 4; // the size of the array
// create array to hold employee references
Employee[] employees = new Employee[SIZE];
public Form1()
{
InitializeComponent();
// Create some employee objects
employees[0] =
new Hourly(1, "H. Potter",
"Privet Drive", "201-9090", 40, 12.00);
employees[1] =
new Salaried(2, "A. Dumbledore",
"Hogewarts", "803-1230", 1200);
employees[2] =
new Hourly(3, "R. Weasley",
"The Burrow", "892-2000", 40, 10.00);
employees[3] =
new Salaried(4, "R. Hagrid",
"Hogwarts", "910-8765", 1000);
}
private void buttonCalcPay_Click(object sender, EventArgs e)
{
int index = 0;
string ostring = ("Fluffshuffle Electronics check no.");
ostring += string.Format("{0}", index);
ostring += Environment.NewLine;
ostring += Environment.NewLine;
ostring += " pay to the order of";
ostring += employees[index].Name;
ostring += Environment.NewLine;
ostring += string.Format("{0:C}", employees[index].CalcPay());
ostring += Environment.NewLine;
ostring += Environment.NewLine;
ostring += " First National Bank";
textBoxCheck.Text = ostring;
textBoxName.Text = employees[index].Name;
textBoxAddress.Text = employees[index].Address;
textBoxPhone.Text = employees[index].PhoneNum;
textBoxEmpNum.Text = string.Format("{0}", employees[index].EmpNum);
index++;
//see if object is hourly
Hourly someEmp1 = employees[index] as Hourly;
if (someEmp1 != null)
{
textBoxHours.Text =
string.Format("{0:F2}", someEmp1.HoursWorked);
textBoxWage.Text =
string.Format("{0:F2}", someEmp1.HourlyWage);
textBoxSalary.Clear();
}
//not hourly, must be salary
Salaried someEmp2 = employees[index] as Salaried;
if (someEmp2 != null)
{
textBoxHours.Clear();
textBoxWage.Clear();
textBoxSalary.Text = string.Format("{0:F2}", someEmp2.Salary);
}
else
{
buttonCalcPay.Enabled = false;
textBoxName.Clear();
textBoxAddress.Clear();
textBoxEmpNum.Clear();
textBoxPhone.Clear();
textBoxHours.Clear();
textBoxWage.Clear();
textBoxSalary.Clear();
}
}
}
}