모두 내가 원했던 것은 간단합니다 (또는 그렇게 생각했습니다). 현재 사용자가 처리해야하는지 여부를 나타내는 확인란이있는 DataGridView
이 있습니다. 내가 Certian 조건에서 Check DataGridView CheckBox를 사용하십시오.
private void dataGridViewProcess_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == (int)ProcessColumns.Error)
{
if (!String.IsNullOrEmpty(dataGridViewProcess.Rows[e.RowIndex]
.Cells[e.ColumnIndex].Value.ToString()))
{
Utils.ErrMsg(String.Format("{0}",
(String.IsNullOrEmpty(siteReportArr[currentSite, e.RowIndex]) ?
"Error message currently unavalible. Try again later." :
siteReportArr[currentSite, e.RowIndex])));
}
}
dataGridViewProcess.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
private void dataGridViewProcess_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (!bInLoadEvent && e.RowIndex >= 0)
{
if (e.RowIndex == (int)CurrentProcess.N)
{
DataGridViewRow rowA = dataGridViewProcess.Rows[e.RowIndex];
DataGridViewRow rowB = dataGridViewProcess.Rows[e.RowIndex + 1];
if (Convert.ToBoolean(rowA.Cells[(int)ProcessColumns.Process].Value)
== false)
{
rowB.Cells[(int)ProcessColumns.Process].Value = false;
}
}
...
else if (e.RowIndex == (int)CurrentProcess.C)
{
DataGridViewRow rowB = dataGridViewProcess.Rows[e.RowIndex];
DataGridViewRow rowA = dataGridViewProcess.Rows[e.RowIndex - 1];
if (Convert.ToBoolean(rowA.Cells[(int)ProcessColumns.Process].Value)
== true)
{
rowB.Cells[(int)ProcessColumns.Process].Value = true;
}
}
}
}
이들의 프로그램에 모든 변경
를 사용하여 체크 의존 프로세스를 강제 있도록 일부 공정은 미세 바 하나 인dataGridViewProcess_CellValueChanged
이벤트에 표시된 마지막 하나의 일을 다른 사람에 의존하고 있습니다. 여기에
C
이전의 프로세스가 선택되어 있고 사용자가
C
의 선택을 취소하려고 시도하는 경우이를 강제로 확인하고 싶습니다. 나는 현재이 일을 할 수 없습니다.
나는 DataGridView
Validated
이벤트를 사용하고 CellDirtyStateChanged
이벤트를 사용하지 않으려 고 시도했습니다. 이 (겉으로보기에는 아주 기본적인) 문제에 대한 도움이 가장 감사 할 것입니다.
감사합니다.
+1 도움을 주셔서 대단히 감사합니다. 매우 감사드립니다. 나는 오늘 그 밑에있다, 너의 시간을 위해 다시 고마워 ... – MoonKnight