The Syncfusion native Blazor components library offers 70+ UI and Data Viz web controls that are responsive and lightweight for building modern web apps.
.NET PDF framework is a high-performance and comprehensive library used to create, read, merge, split, secure, edit, view, and review PDF files in C#/VB.NET.
I am attempting to override the Paint method for a derived class (clsMyDataGridTextBoxColumn) that inherits from DataGridTextBoxColumn. The behavior I have found is that when I override the Paint method to dynamically change a single row's backcolor (via the backBrush object of the base class' Paint call) based on the row's content, it will change the color, but it seems to disable the ability for a row to be selected (highlighted). By the way, I am also, disabling the edit cell feature, by overriding the Edit method and leaving it empty. I have commented out the override Edit method to see if that was causing the highlight not to work, but I got the same results. Also, I cannot alter the properties of the DataGrid anymore either, for instance I changed the color of the GridLines, but it had no effect. Do I have to override all of these properties and implement a select (highlight) capability in my derived class or am I missing something simple here? Thanks for your help in advance.
Karl
Well if you succeed please post it here, I am very curious how it is done.
CBClay Burch Syncfusion Team April 21, 2002 11:29 AM UTC
You might try not changing the background color in your Paint override if the rowNum passed in is selected. I added this code to the sample in our Windows Forms FAQ about coloring individual cells and it allowed the highlighting of selected cells to go through OK.
try
{
if(!this.DataGridTableStyle.DataGrid.IsSelected(rowNum))
{
object o = this.GetColumnValueAtRow(source, rowNum);
if( o!= null)
{
char c = ((string)o)[0];
if( c > 'F')
{
// could be as simple as
// backBrush = new SolidBrush(Color.Pink);
// or something fnacier...
backBrush = new LinearGradientBrush(bounds,
Color.FromArgb(255, 200, 200),
Color.FromArgb(128, 20, 20),
LinearGradientMode.BackwardDiagonal);
foreBrush = new SolidBrush(Color.White);
}
}
}
}
catch(Exception ex){ /* empty catch */ }
finally{
// make sure the base class gets called to do the drawing with
// the possibly changed brushes
base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
}
CBClay Burch Syncfusion Team April 21, 2002 11:45 AM UTC
Also in the sample in our Windows Forms FAQ, setting the GridLineColor property on the tablestyle seems to work as well.
// make the dataGrid use our new tablestyle and bind it to our table
dataGrid1.TableStyles.Clear();
tableStyle.GridLineColor = Color.Red; //change gridline color added*****
dataGrid1.TableStyles.Add(tableStyle);
dataGrid1.DataSource = _dataSet.Tables["customers"];