2016-08-09 10 views
0

Ich bin mit Visual Studio 2012. Ich die Bearbeitung auf der DataGridView deaktivieren möchten, scheint es zu funktionieren, wenn ich diesen Code verwendet:Deaktivieren Bearbeitung in Datagridview

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    dataGridView1.ReadOnly = true; 
} 

Aber wenn ich wieder auf der Speisekarte Formular dann gehe zurück zu dem Formular, wo die DataGridView ist, kann es jetzt bearbeitet werden. Ich definiere nur

dataGridView1.ReadOnly = true; 

zu diesem Formular. Und ich weiß nicht, was das Problem ist. Kann jemand helfen? Vielen Dank.

Hier ist mein Code auf die Schaltfläche, um das Menü gehen

Menu menu = new Menu(); 
this.Hide(); 
menu.ShowDialog(); 

und meine Taste, um das Datagrid geht zurück:

FrmList frmlist = new FrmList(); 
frmlist.Show(); 
this.Hide(); 
+0

Hallo haben Sie versucht, this.close()? auf Frmlist, anstatt es zu verstecken? Mit Hilfe dessen werden Ihre Ereignisse –

+0

Rebinded –

+0

@marc_s ein Winform-Sir –

Antwort

1

Warum versuchen Sie nicht die Einstellung der ReadOnly Eigenschaft auf Wahr im Eigenschaftenfenster des DataGridView?

Edit:

Klicken Sie doppelt auf das Formular und im Design-Fenster, wählen Sie die Datagridview, und öffnen Sie die Registerkarte Eigenschaften. Scrollen Sie nach unten durch die Eigenschaften und Sie werden die ReadOnly Option sehen. Ändern Sie den Wert in True.

Sie haben die Eigenschaft ReadOnly im Ereignis CellContentClick festgelegt, das nur ausgeführt wird, wenn der Benutzer auf die Gitterzellen klickt. Also, wenn Sie ein neues Objekt in der Form, wie dies schaffen,

FrmList frmlist = new FrmList(); 

es wird nur eine neue Instanz des Formulars mit dem Properties Satz im Designer erstellen. Da die ReadOnly-Eigenschaft standardmäßig auf "false" gesetzt ist und der Code, den Sie zum Festlegen auf "true" geschrieben haben, nicht ausgeführt wurde, kann die DataGridView bearbeitet werden.

+0

Ist das ReadOnlyChanged? Es ist kein boolescher Sir –

+0

, der das Problem löst :) ist das anders als nur ReadOnly zu codieren? –

+0

Habe die Antwort aktualisiert. –

0

Ref:

DataGridView read only cells

this.dgridvwMain.Rows[index].Cells["colName"].ReadOnly = true; 
+0

Verwenden Sie die DataGridView.CellEnter-Eigenschaft –

0

Überprüfen Sie, ob das Formular auf Navigation neu initialisiert. Sie können im Konstruktor einen Haltepunkt festlegen. Dies hängt von Ihrem Navigationsdienst ab oder wie er implementiert wurde. In diesem Fall können Sie den Merker ReadOnly bei der Initialisierung auf den letzten Wert setzen oder ihn als Singleton implementieren.

0

Machen Sie das gesamte DataGridView schreibgeschützt. Für weitere Informationen besuchen MSDN

private void Button8_Click(object sender, System.EventArgs e) 
{ 
    foreach (DataGridViewBand band in dataGridView.Columns) 
    { 
     band.ReadOnly = true; 
    } 
} 
Verwandte Themen