public override object Clone() { MyDataGridViewButtonColumn column = (MyDataGridViewButtonColumn)base.Clone(); column.NewRowButtonVisible = this.NewRowButtonVisible; return(column); }
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts) { MyDataGridViewButtonColumn owner = (MyDataGridViewButtonColumn)OwningColumn; if (ButtonVisible && (owner.NewRowButtonVisible || rowIndex != DataGridView.NewRowIndex)) { if (UseColumnTextForButtonValue) { base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, value, owner.Text, errorText, cellStyle, advancedBorderStyle, paintParts); } else { base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts); } } else { if ((paintParts & DataGridViewPaintParts.Background) == DataGridViewPaintParts.Background) { SolidBrush brush = new SolidBrush(((paintParts & DataGridViewPaintParts.SelectionBackground) == DataGridViewPaintParts.SelectionBackground && (elementState & DataGridViewElementStates.Selected) == DataGridViewElementStates.Selected) ? cellStyle.SelectionBackColor : cellStyle.BackColor); graphics.FillRectangle(brush, cellBounds); brush.Dispose(); } if ((paintParts & DataGridViewPaintParts.Border) == DataGridViewPaintParts.Border) { PaintBorder(graphics, clipBounds, cellBounds, cellStyle, advancedBorderStyle); } } }
private void LoadCasovi(MojaKursInstancaProsireniModel result) { gridCasovi.DataSource = result.Casovi.OrderBy(c => c.DatumVrijemeOdrzavanja).ToList(); gridCasovi.Columns[nameof(CasModel.Id)].Visible = false; gridCasovi.Columns[nameof(CasModel.Opis)].Visible = false; gridCasovi.Columns[nameof(CasModel.Odrzan)].Visible = false; gridCasovi.Columns[nameof(CasModel.DatumVrijemeOdrzavanja)].HeaderText = "Vrijeme održavanja"; gridCasovi.Columns[nameof(CasModel.DatumVrijemeOdrzavanja)].DisplayIndex = 1; gridCasovi.Columns[nameof(CasModel.Lokacija)].DisplayIndex = 2; //below is header cell for each row with count number if (gridCasovi.Columns["Number"] == null) { DataGridViewTextBoxColumn numberCell = new DataGridViewTextBoxColumn() { Name = "Number", HeaderText = "#", DisplayIndex = 0, Width = 20 }; gridCasovi.Columns.Add(numberCell); } if (gridCasovi.Columns["Akcija"] == null) { MyDataGridViewButtonColumn buttonColumn = new MyDataGridViewButtonColumn() { Name = "Akcija", HeaderText = "Akcija", Text = "Označi kao održan", UseColumnTextForButtonValue = true, Width = 150, }; gridCasovi.CellClick += gridCasovi_OdrzanButton_CellClick; gridCasovi.Columns.Add(buttonColumn); } gridCasovi.Columns["Akcija"].DisplayIndex = 3; foreach (DataGridViewRow row in gridCasovi.Rows) { row.Cells[gridCasovi.Columns["Number"].Index].Value = row.Index + 1 /*gridCasovi.Rows.Count - row.Index*/; MyDataGridViewButtonCell buttonCell = (MyDataGridViewButtonCell)row.Cells[gridCasovi.Columns["Akcija"].Index]; bool odrzan = bool.Parse((row.Cells[gridCasovi.Columns[nameof(CasModel.Odrzan)].Index].Value).ToString()); if (odrzan) { gridCasovi.Rows[row.Index].Cells[gridCasovi.Columns["Number"].Index].Style.BackColor = Color.Green; buttonCell.Enabled = false; } else { gridCasovi.Rows[row.Index].Cells[gridCasovi.Columns["Number"].Index].Style.BackColor = Color.Red; buttonCell.Enabled = true; } } }