我有一个有五列的gridview。从第二个gridview单元格我有一个名为font size的列,我使用了combo-box并给出了静态数字,如(2.4.6.8.10)。
字体大小的目的是,当您从组合框中选择任何数字时,它必须更改该行的字体大小文本。
我创建了一个组合框和一个标签,我将选择字体大小,标签将根据所选尺寸更改文本大小。我将它应用于datagridview,它将更改该行的整个单元格
码
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
lblchangesize.Font = new Font(lblchangesize.Font.FontFamily, Convert.ToInt32(comboBox1.SelectedItem), lblchangesize.Font.Style);
}
我尝试将此应用于gridview,但它无法正常工作
Dictionary<int, Font> rowFont = new Dictionary<int, Font>();
public void selectedRowsFont(Font F)
{
foreach(DataGridViewRow row in Gridview_Output.SelectedRows)
{
rowFont[row.Index] = F;
}
}
private void Gridview_Output_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
Font F = null;
if (!rowFont.TryGetValue(e.RowIndex, out F))
F = Gridview_Output.Font;
e.CellStyle.Font = F;
}
答案 0 :(得分:0)
使用DataGridView.CellFormatting
事件。然后设置字体e.CellStyle.Font = ...
您需要根据行索引维护字体查找,并使用e.RowIndex
作为密钥。
编辑:
// member variable:
Dictionary<int,Font> rowFont = new Dictionary<int,Font>();
public void SetSelectedRowsFont(Font f) {
// foreach selected row,
// rowFont[row.Index] = f;
}
// ... in cell formatting:
Font f = null;
if (!rowFont.TryGetValue(e.RowIndex, out f))
f = this.Font;
e.CellStyle.Font = f;