如何使用组合框增加/更改字体大小

时间:2015-04-07 07:54:57

标签: c# winforms datagridview font-size

我有一个有五列的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;
    }

1 个答案:

答案 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;