/// <summary>
/// DataGridView 컨트롤에서 데이터를 검색한다.
/// 검색하려는 데이터의 개수와 인덱스의 개수는 같아야 한다.
/// </summary>
/// <param name="dgv">DataGridView 컨트롤</param>
/// <param name="values">검색하려는 데이터</param>
/// <param name="columns">검색하려는 열의 인덱스</param>
/// <param name="startindex">검색 시작 행의 인덱스</param>
/// <returns>검색된 데이터</returns>
List<DataGridViewRow> FindDataGridView(DataGridView dgv, IEnumerable<string> values, IEnumerable<int> columns, int startindex = 0)
{
List<DataGridViewRow> results = new List<DataGridViewRow>();
if (dgv == null || dgv.RowCount < 1
|| values == null || values.Count() < 1
|| columns == null || columns.Count() < 1
|| values.Count() != columns.Count())
return results;
try
{
int cnt = values.Count();
int idx = 0;
foreach (DataGridViewRow row in dgv.Rows)
{
if (idx < startindex)
continue;
bool equal = true;
for (int i = 0; i < cnt; ++i)
{
int col = columns.ElementAt(i);
string value = values.ElementAt(i);
if (row.Cells[col].Value == null || row.Cells[col].Value.ToString() != value)
{
equal = false;
break;
}
}
if (equal)
results.Add(row);
++idx;
}
}
catch (Exception ex)
{
KLog.Write(ex.ToString());
}
return results;
}
'유용한 정보' 카테고리의 다른 글
[C#] DataGridView 에 수직스크롤바가 있는지의 여부 판단하기 (0) | 2025.04.16 |
---|---|
[C#] DataGridView 의 RowHeader 에 일련번호 자동생성하기 (0) | 2025.04.16 |
[C#] DataGridView에서 행이 비어있는지 체크 (0) | 2025.04.16 |
[C#] TextBox 컨트롤에 수직스크롤바가 있는지의 여부 판단하기 (0) | 2025.04.16 |
[C#] 임의의 컨트롤을 사용하여 폼을 이동하자 (0) | 2025.04.16 |