2012-10-19 14 views
18

Ich versuche, die Textausrichtung und die Schriftgröße eines DataGridView zu ändern. Alle Spalten werden zur Laufzeit programmatisch erstellt. Hier ist der Code ..Ändern der Textausrichtung der DataGridView-Headerzellen und der Schriftgröße

private void LoadData() 
{ 
    dgvBreakDowns.ColumnCount = 5; 
    dgvBreakDowns.Columns[0].Name = "Breakdown No"; 
    dgvBreakDowns.Columns[1].Name = "Breakdown Type"; 
    dgvBreakDowns.Columns[2].Name = "Machine Type"; 
    dgvBreakDowns.Columns[3].Name = "Date"; 
    dgvBreakDowns.Columns[4].Name = "Completed"; 

    dgvBreakDowns.Columns[4].Visible = false; 

    foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows) 
    { 
     header.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; 
     header.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel); 
    } 
} 

Diese LoadData() Methode wird in Form Konstruktor genannt. Die Spalten werden erstellt, die Änderungen der Kopfzeilen werden jedoch nicht übernommen. Ich denke, es ist wegen eines Fehlers in meinem Loop foreach (DataGridViewHeaderCell header in dgvBreakDowns.Rows)? Ich bin mir nicht sicher. Ich habe versucht, es zu dgvBreakDowns.Columns zu ändern, und ich bekomme eine InvalidCastException. Wie kann ich die Header-Zellen auswählen, um diese Änderungen anzuwenden?

Ich habe ein anderes kleines Problem. Wenn ich das Programm starte, sieht es so aus.

enter image description here

Hinweis auf die erste Zelle standardmäßig angezeigt wird deshalb ausgewählt ist Blau. Sicher, es betrifft nichts, aber es sieht nur etwas hässlich und unordentlich aus. Es ist möglich, sie davon abzuhalten, die Zelle so auszuwählen?

+0

Das ist seltsam, dass Sie eine 'DataGridViewRow' zu einer' DataGridViewHeaderCell' so auspacken können. Ich denke, der einzige Grund, warum Ihr Code funktioniert, ist, dass die 'Rows'-Sammlung leer ist ... –

Antwort

30

Versuchen Sie, diese (beachten Sie, ich bin Spalten hier und nicht Zeilen verwenden):

foreach(DataGridViewColumn col in dgvBreakDowns.Columns) 
{ 
    col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; 
    col.HeaderCell.Style.Font = new Font("Arial", 12F, FontStyle.Bold, GraphicsUnit.Pixel); 
} 

Wie für die Zelle Abwahl versuchen dgvBreakDowns.ClearSelection()

+1

Das funktioniert super! Danke. :) – Isuru

+0

Vielen Dank, aber ich brauche für DataGrid und ich habe Ihren Code geändert, um [Dies] (https://pastebin.com/GPSaAK4m), Dieser Code für den Wechsel zu DataGrid Columnd Header. Ich hoffe, hilft anderen ... – tpbafk

3

oder nur versuchen, dieses:

dgvBreakDowns.Columns[4].HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomCenter; 
Verwandte Themen