クライアントが取り組んでいるケースのリストを表示する WinForms アプリに datagridview があります。datagridview の「CaseNo」列をダブルクリックすると、選択したケースに固有の新しいフォームが開きます。ダブルクリック イベントのコードは次のとおりです。
private void dataGV_CellCoubleClick(object sender, DataGridCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
DataTable table = (DataTable)dataGV.DataSource;
string strCaseNo = table.Rows[e.RowIndex][e.ColumnIndex].ToString();
frmCase fC = new frmCase(strCaseNo);
fC.MdiParent = this.MdiParent;
fC.Show;
}
}
ケースフォームは正常に開きます。ただし、ユーザーが以前に列ヘッダーをダブルクリックして並べ替えを datagridview に適用していた場合、データ行をダブルクリックすると間違ったケースが開きます。
例えば:
ケース名
1 スミス
2 ジョーンズ
3 ウォルター
最初に 2 をクリックすると、Jones の frmCase が開きます。ただし、最初に [名前] 列をダブルクリックすると、次のようにアルファベット順に並べ替えられます。
ケース名
2 ジョーンズ
1 スミス
3 ウォルター
次に 2 をクリックすると、Smith のケースが開きます (Jones ではなく)。
並べ替えの後、セルをダブルクリックすると、以前にその行を占めていた値が返されるようです (ユーザー画面で並べ替えられていても、データソースが並べ替えられていないかのように)。
誰かがこれを修正する方法を教えてください。