Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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();
        }