1

ユーザーが行の最初の列をクリックした場合、行全体を選択する必要があり、他の列をクリックした場合、行全体を選択してはいけません。 datagridview の選択モードを設定しましたcellselection を読み取り専用にして、以下のコードをすべて試してみましたが、役に立たないことがわかりました。

private void tbljobdata_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (tbljobdata.CurrentCell.ColumnIndex == 0)
    {
        tbljobdata.Rows[tbljobdata.CurrentCell.RowIndex].Selected = true;
    }
}
4

2 に答える 2

2

それが最初にキャプチャされたので、マウス ダウン イベントを処理します。

private void tbljobdata_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == 0)
        tbljobdata.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    else
        tbljobdata.SelectionMode = DataGridViewSelectionMode.CellSelect;
}

必要な条件の下で、それに応じて読み取り専用プロパティも変更します。必要に応じて、実際には個々のセルに読み取り専用を設定できます

于 2012-05-04T20:56:23.823 に答える
1

このコードを試してください:

private void tbljobdata_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 0)
    {
        tbljobdata.Rows[e.RowIndex].Selected = true;
    }
}

CellClickイベントの詳細については、こちらのドキュメント リンクを参照してください。

于 2012-05-04T20:45:20.623 に答える