Hola!
es que yo de c# ni papa, jeje
Fíjate que tu estás añadiendo una columna que se llama Apellido (tienes columns.Add), mientras que yo le digo que "a" equivale a la columna Apellido (tengo a=columna(apellido), mas o menos).
De todas maneras mira este traductor, es bastante fiable:
http://www.carlosag.net/Tools/CodeTranslator/
La primera parte te la deja así:
Código:
DataGridViewColumn a;
a = gridviewPrueba.Columns["Apellido"];
a.ReadOnly = true;
a.Visible = true;
a.HeaderText = "Primer Apellido";
a.Width = 55;
La segunda prueba tu, a ver que tal...
Saludos!!