PDA

View Full Version : سوال: dataGridView1.AlternatingRowsDefaultCellStyle و رنگ پشت زمینه RichTextBox



قله بلند
یک شنبه 29 تیر 1393, 12:49 عصر
سلام دوستان
من با خروجی این کد مشکل دارم به این صورت که این کد کارش رو انجام می ده
dataGridView1.AlternatingRowsDefaultCellStyle.Back Color = Color.Linen;
اما پشت زمینه RichTextBox چون سفیده، این رنگ امیزی یک خط درمیون رو دریافت نمی کنه.



DataGridViewRichTextBox.DataGridViewRichTextBoxCol umn x1 = new DataGridViewRichTextBox.DataGridViewRichTextBoxCol umn();
x1.MinimumWidth = 105;
x1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
x1.SortMode = DataGridViewColumnSortMode.NotSortable;
dataGridView1.Columns.Insert(0, x1);


من فکر می کنم که باید در این بخش از کلاس، تغییری ایجاد بشه اما نمی دونم چه تغییری؟


private Image GetRtfImage(int rowIndex, object value, bool selected)
{
Size cellSize = GetSize(rowIndex);

if (cellSize.Width < 1 || cellSize.Height < 1)
return null;

RichTextBox ctl = null;

if (ctl == null)
{
ctl = _editingControl;
ctl.Size = GetSize(rowIndex);
SetRichTextBoxText(ctl, Convert.ToString(value));
}

if (ctl != null)
{
// Print the content of RichTextBox to an image.
Size imgSize = new Size(cellSize.Width-1 , cellSize.Height-1);
Image rtfImg = null;

if (selected)
{
// Selected cell state
ctl.BackColor = DataGridView.DefaultCellStyle.SelectionBackColor;
ctl.ForeColor = DataGridView.DefaultCellStyle.SelectionForeColor;
ctl.SelectionIndent = ctl.SelectionIndent + 3;

// Print image
rtfImg = RichTextBoxPrinter.Print(ctl, imgSize.Width, imgSize.Height);

// Restore RichTextBox
ctl.BackColor = DataGridView.DefaultCellStyle.BackColor;
ctl.ForeColor = DataGridView.DefaultCellStyle.ForeColor;
}
else
{
ctl.SelectionIndent = ctl.SelectionIndent + 3;
rtfImg = RichTextBoxPrinter.Print(ctl, imgSize.Width, imgSize.Height);
}

return rtfImg;
}

return null;
}



من از این کلاس استفاده می کنم
http://www.codeproject.com/Articles/31823/RichTextBox-Cell-in-a-DataGridView