Frage : DataGridView - Einstellung der Spaltengröße?

I nachdem das DataGridView und die Schwergängigkeit es zu einer Datenquelle hergestellt worden sind, die ich versuche, die Spaltenbreite einzustellen und ich erhalte eine Störung. Ich überprüfe und sehe, ob sie grid.columns.count hat, da 0 außerdem rowcount dennoch der Datensatz 4 Reihen und ungefähr 12 Spalten hat, UND dieses Rasterfeld zeigt an, wann die Form, auf der es gesetzt wird, angezeigt wird. Den Code bitte sehen. Möglicherweise kann jemand finden, was ich falsches here. tun muss
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
Private VorShowOrderDetail (ByVal SalesHeaderID als ganze Zahl)
        Schwacher sql als Schnur = „spOrderDetail“
        Schwacher ds als neuer Datensatz
        Schwacher grd als neues DataGridView

        Versuch
            Using Anschl. als neues SqlConnection (My.Settings.OrderEntrySalesConnectionString)
                Anschl. Öffnen sich ()
                Using DA als neues SqlDataAdapter (sql, Anschl.)
                    Mit DA
                        .SelectCommand.CommandType = CommandType.StoredProcedure
                        .SelectCommand.Parameters.Add („@SalesHeaderID“, SqlDbType.Int). Richtung = ParameterDirection.Input
                        .SelectCommand.Parameters („@SalesHeaderID“). Wert = SalesHeaderID
                        . Füllen (ds)
                    Mit beenden
                Using beenden
            Using beenden
        Ex als Ausnahme sich verfangen
            DisplayErrorMsgLogToTable (ex, „Kunde grasen - Bilanz - 1“)
        Enden-Versuch

        Versuch
            grd. Name = „grd“
            grd.DataSource = ds. Tabellen (0)
            grd. Größe = neues System.Drawing.Size (720, 220)
            '
            '******************************
            'Kommt hier die Störung wenn uncomment das folgende
            'gekommentierte Linien. 
            '
            'grd. Spalten (0). Breite = 80
            'grd. Spalten („Beschreibung“). Breite = 200
            'grd. Spalten („nach Gew.“). Breite = 45
            'grd. Spalten („Warenbestand“). Breite = 55
            grd. Sichtbar = ausrichten
            grd.ScrollBars = ScrollBars.Vertical
            grd.RowHeadersVisible = falsch
            Schwaches frm als neues Windows.Forms.Form
            Mit frm
                . Größe = neues System.Drawing.Size (730, 300)
                . Controls.Add (grd)
                . Dock = DockStyle.Fill
                .BringToFront ()
                .StartPosition = FormStartPosition.CenterParent
                .SizeGripStyle = Windows.Forms.SizeGripStyle.Hide
                . Text = „Auftrags-Detail für“ + Me.cboCustomerPickupSalesHeaderID.SelectedText.ToString
                .MinimizeBox = falsch
                .MaximizeBox = falsch
                .ShowDialog ()
                . Abschaffen ()
                . Schließen ()
            Mit beenden

        Ex als Ausnahme sich verfangen
            DisplayErrorMsgLogToTable (ex, „ShowOrderDetail“)
        Enden-Versuch
    Enden-Unterseeboot

Antwort : DataGridView - Einstellung der Spaltengröße?

Weil Sie das DataGridView dynamisch verursachen, sind die Spalten nicht für Sie vorhanden, bis das Rasterfeld Schwergängigkeit abgeschlossen hat. So was Sie tun müssen, ist, eine Zufuhr für das DataBindingComplete Ereignis hinzuzufügen und die Spaltengrößen dort einzustellen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
    AddHandler grd.DataBindingComplete, AddressOf grd_DataBindingComplete

    Privates Unterseeboot DataGridView1_DataBindingComplete (ByVal Absender als System.Object, ByVal e als System.Windows.Forms.DataGridViewBindingCompleteEventArgs)

        Schwacher grd als DataGridView = C (Absender, DataGridView)

        grd. Spalten (0). Breite = 80
        grd. Spalten („Beschreibung“). Breite = 200
        grd. Spalten („nach Gew.“). Breite = 45
        grd. Spalten („Warenbestand“). Breite = 55

    Enden-Unterseeboot 
Weitere Lösungen  
 
programming4us programming4us