private void CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 1 || e.ColumnIndex == 2) //text1 & text2 { return; } CompareEntry entry = _list[e.RowIndex]; switch (entry.CompareResult) { case CompareEntry.CompareRes.Diff: e.CellStyle.ForeColor = Color.Red; break; case CompareEntry.CompareRes.NewIn1: e.CellStyle.ForeColor = Color.Blue; break; case CompareEntry.CompareRes.NewIn2: e.CellStyle.ForeColor = Color.Orange; break; case CompareEntry.CompareRes.Equal: default: break; } }
private void BuildList() { if (_cliloc1 == null || _cliloc2 == null) { return; } for (int i = 0; i < _cliloc1.Entries.Count; i++) { CompareEntry entry = new CompareEntry { CompareResult = CompareEntry.CompareRes.NewIn1 }; StringEntry entr = _cliloc1.Entries[i]; entry.Number = entr.Number; entry.Text1 = entr.Text; entry.Text2 = ""; _compareList.Add(entry.Number, entry); } for (int i = 0; i < _cliloc2.Entries.Count; i++) { StringEntry entr = _cliloc2.Entries[i]; if (_compareList.ContainsKey(entr.Number)) { CompareEntry entr1 = _compareList[entr.Number]; entr1.Text2 = entr.Text; entr1.CompareResult = entr1.Text1 != entr.Text ? CompareEntry.CompareRes.Diff : CompareEntry.CompareRes.Equal; } else { CompareEntry entry = new CompareEntry { CompareResult = CompareEntry.CompareRes.NewIn2, Number = entr.Number, Text1 = "", Text2 = entr.Text }; _compareList.Add(entry.Number, entry); } } _list = new List <CompareEntry>(); foreach (KeyValuePair <int, CompareEntry> key in _compareList) { if (_showOnlyDiff) { if (key.Value.CompareResult == CompareEntry.CompareRes.Equal) { continue; } } _list.Add(key.Value); } switch (_sortColumn) { case 0: _list.Sort(new NumberComparer(_sortOrder == SortOrder.Descending)); break; case 1: _list.Sort(new TextComparer1(_sortOrder == SortOrder.Descending)); break; case 2: _list.Sort(new TextComparer2(_sortOrder == SortOrder.Descending)); break; case 3: _list.Sort(new FlagComparer(_sortOrder == SortOrder.Descending)); break; } _compareList.Clear(); _source = new BindingSource { DataSource = _list }; dataGridView1.DataSource = _source; if (dataGridView1.Columns.Count > 0) { dataGridView1.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending; dataGridView1.Columns[0].Width = 60; dataGridView1.Columns[1].HeaderCell.SortGlyphDirection = SortOrder.None; dataGridView1.Columns[2].HeaderCell.SortGlyphDirection = SortOrder.None; dataGridView1.Columns[3].HeaderCell.SortGlyphDirection = SortOrder.None; dataGridView1.Columns[3].Width = 105; } dataGridView1.Invalidate(); }