В этом случае: Я хочу найти слово в целом DataGridView
через цикл s, а затем для каждого матча выделяю слово. Основная негибкость, с которой я сталкиваюсь, заключается в том, что столбцы имеют разные System.Windows.Forms.DataGridViewContentAlignment
. Поэтому в paiting (выделение) математического слова в ячейках я должен позаботиться о ячейке ContentAlignment
.DataGridView CellPainting: выделить слово в ячейке, учитывая направление содержимого ячейки
До сих пор я написал следующий код, чтобы найти спички
private int FindAllMatches()
{
int itemsFound = 0;
for (int r = 0; r < dgvMain.Rows.Count; r++)
{
DataGridViewRow row = dgvMain.Rows[r];
for (int c = 0; c < Columns.Count; c++)
{
string cellValue = (dgvMain.Rows[r].Cells[c].Value ?? "").ToString();
if (cellValue.Contains(SearchValue.ToString()))
{
HighlightRow(row); // highlights whole row, weak solution
itemsFound++;
break;
}
}
}
return itemsFound;
}
Но, как вы видите, я в настоящее время удалось выделить строки, которые имеют по крайней мере один матч. Мне нужен код, который выделяет только часть ячейки, которая соответствует моему конкретному слову (SearchValue).
Я знаю, что я должен использовать CellPainting
событие, но я не знаю, как писать слово внутри Cell
рассматривая Cell
«s ContentAlignment
Я ответил [подобный вопрос] (http://stackoverflow.com/questions/21989469/set-two-colors-text-in-a-single-datagridview-cell/21997432#21997432) – Junaith
Привет @ Junaith, за последние пару недель я спрашивал о «DataGridView», и вы отвечали на них :) Я думаю, мы должны начать бизнес вместе;) шутить. Я проверю его и сообщит вам через пару минут ... –
У меня проблема @Junaith, ваш код отлично подходит для текста на английском языке, но мой язык является персидским, написанным в направлении RightToLeft. С помощью [Текущий ответ, который вы предоставили] (http://stackoverflow.com/questions/21989469/set-two-colors-text-in-a-single-datagridview-cell/21997432#21997432) мой текст показан неправильно, например, если текст моей ячейки «نصب قفل سخت افزاری» показан как «فزاری نصب قفل سخت ا» –