私はコンボボックスにリストを挿入する必要があり、リストはemployee.dat
ファイルからデータを取り込む必要がある作業をしています。私は正常にコンボを投入していますが、ソート中は問題に直面しています。私が並べ替えようとしている値は文字列番号です。 0〜9の値を表示しますが、9を超えた場合はコンボがうまく見えます。ここでコンボボックスを並べ替える際の問題
は私が行うために必要なものスクリーンショット
ソートこれらの値であり、10はここで9
でリードされなければならないことは、私はまだ試してみましたコードスニペットであることを意味します。
private void FormDelete_Load(object sender, EventArgs e)
{
//LOAD EVENT for FORM
//Clear all form controls
Reset();
//Fill the ID Combo box using data in List<T>
comboBoxID.Items.Clear();
foreach (MyClass.Employee obj in MyClass.listEmployees)
{
comboBoxID.Items.Add(obj.ID);
}
//Sort the combo box ibn ascending order
comboBoxID.Sorted = true;
}
Employee.cs
public class Employee
{
public int ID;
public string fName;
public string lName;
public string gender;
public int age;
public double hourWage;
}
public static List<Employee> listEmployees = new List<Employee>();
Empolyee.dat
1, Ann, Crowe, F, 34, 12.95
2, Bob, Costas Jr., M, 27, 8.75
3, Sue, Soppala, F, 22, 7.95
4, Bill, Barton, M, 45, 15.25
5, Jill, Jordan, F, 33, 14.75
6, Art, Ayers, M, 33, 14.75
7, Larry, Stooge, M, 55, 21.05
8, Art, Ayers, M, 33, 14.75
9, Larry, Stooge, M, 55, 21.05
10, Art, Ayers, M, 33, 14.75
11, Larry, Stooge, M, 55, 21.05
リスト移入コード
if (File.Exists("employee.data"))
{
try
{
streamEmployee = new StreamReader("employee.data");
string line; //to read a line from the text file
string[] arrFields = new string[5];
while (streamEmployee.Peek() > -1)
{
line = streamEmployee.ReadLine(); //read a line of records from file
arrFields = line.Split(','); //split the line at comma junction, and save split //fields in array
MyClass.Employee objEmp = new MyClass.Employee(); //create a "specific" employee //object instance
//Assign each field from line as generic object's properties to make it "specific
objEmp.ID = Convert.ToInt32(arrFields[0].Trim()); //ID is integer
objEmp.fName = arrFields[1].Trim();
objEmp.lName = arrFields[2].Trim();
objEmp.gender = arrFields[3].Trim();
objEmp.age = Convert.ToInt32(arrFields[4].Trim()); //age is integer
objEmp.hourWage = Convert.ToDouble(arrFields[5].Trim()); //hourly wage is double
//Add this specific employee object to the List
MyClass.listEmployees.Add(objEmp);
} //while
} //try
catch (IOException err)
{
MessageBox.Show(err.Message);
error = true;
} //catch
finally
{
if (streamEmployee != null) //it is indeed representing a file and may not be closed
streamEmployee.Close();
} //finally
} //if
ファイルがすでにソートされています。Sorted = True行を削除すると、正しい順序でアイテムが既にあります。 – Steve
@スティーブこれを試してみてください。しかし、入力ソースファイルから注文を変更するとどうなりますか?ソートされた行をコメントアウトすることは解決策ではありません。 –
この場合に特別に答えを追加しました – Steve