internal void RefreshRow(int index, PackageManifest package) { if (index < 0 || index >= _packageList.Rows.Count) { return; } var row = _packageList.Rows[index]; var textCells = new DataGridViewCell[] { row.Cells[0], row.Cells[1], row.Cells[2] }; var enabledBtn = row.Cells[4] as DataGridViewButtonCell; enabledBtn.Value = package.IsDisabled ? "No" : "Yes"; enabledBtn.FlatStyle = FlatStyle.Popup; var enableColor = package.IsDisabled ? Color.Tomato : Color.LightGreen; enabledBtn.Style.ForeColor = enableColor; enabledBtn.Style.SelectionForeColor = enableColor; // set the base text colors Color textColor; if (package.IsDisabled) { textColor = Color.FromArgb(125, 125, 125); } else { textColor = Color.White; } foreach (var cell in textCells) { cell.Style.ForeColor = textColor; cell.Style.SelectionForeColor = textColor; } // set the status color var statusCell = row.Cells[3]; var style = statusCell.Style; if (package.IsDisabled) { // set the status message statusCell.Value = "Disabled"; style.ForeColor = textColor; style.SelectionForeColor = textColor; } else { // set the status message statusCell.Value = package.InstallStateToString(); Color warningCol = Color.FromArgb(230, 141, 46); switch (package.m_installState) { case InstallState.HasConflict: case InstallState.MissingDependency: case InstallState.Outdated: style.ForeColor = warningCol; style.SelectionForeColor = warningCol; break; case InstallState.OptionalUpdate: style.ForeColor = Color.YellowGreen; style.SelectionForeColor = Color.YellowGreen; break; case InstallState.Installed: style.ForeColor = Color.LightGreen; style.SelectionForeColor = Color.LightGreen; break; } } _packageList.Sort(_listColName, ListSortDirection.Ascending); if (CurrentInspectedPackage == package) { SetInfoboxPackage(package); } }