2015-04-07 34 views
0

我有一個五列的gridview。從第二個gridview單元格我有一個名爲字體大小的列,我已經使用了組合框,並給予像(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

什麼問題? – stefankmitph

+0

我想將其應用於我的datagridview,當您更改字體大小時,它必須更改整行。上面的代碼是使用標籤時的示例。 – prosts

+0

和DataGridView有什麼樣的問題?你有什麼嘗試? – stefankmitph

回答

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; 
+0

請檢查我的更新的代碼,並從那指導我 – prosts

+0

@prosts您正在設置'lblchangesize.Font'。相反,它應該是'e.CellStyle.Font'。 – Loathing

+0

我按照你的指示,現在我有Convert.ToInt32(FontOut.SelectedItem)它說不包含定義的問題。我已經更改了代碼,因爲您可以看到我的更新代碼。請幫助我! – prosts

相關問題