2009-07-20 18 views

Respuesta

56

Si va a agregar las columnas a ti mismo ... no agregue las columnas que no desea que.

Si tiene AutoCreateColumns habilitado, entonces:

  • si se trata de un modelo basado en clases, añadir [Browsable(false)] a propiedades que no desea
  • o conjunto de .Visible la columna en false
  • o simplemente elimine las columnas que no desea después
+0

Otra opción es establecer DataGridAutoGeneratingColumnEventArgs.Cancel en verdadero en el controlador AutoGeneratingColumn. – Jeevaka

+2

Sí, BrowsableAttribute! Es lo que he estado buscando todo el día. Gracias. – Szybki

+0

@Szybki IIRC, la única forma en que descubrí qué cosas buscaba fue mirando el reflector ... desde la cuadrícula, a 'PropertyDescriptor', a' PropertyInfo'. No es obvio; p –

0

De su pregunta, me imagino que no desea mostrar ciertas "columnas" dentro de la d atagridview? De ser así, use la propiedad Columnas para agregar y eliminar cualquier columna creada automáticamente que se encuentre en el origen de datos que utilice para adjuntarla a la cuadrícula.

El DataGridView de forma predeterminada creará columnas para todas las propiedades públicas en el objeto de origen de datos subyacente. Así,

public class MyClass 
{ 
    private string _name; 

    public string Name 
    { 
     get{ return _name; } 
     set { _name = value; } 
    } 

    public string TestProperty 
    { 
     { get { return "Sample"; } 
    } 
} 

... 
[inside some form that contains your DataGridView class] 

MyClass c = new MyClass(); 

// setting the data source will generate a column for "Name" and "TestProperty" 
dataGridView1.DataSource = c; 

// to remove specific columns from the DataGridView 
// dataGridView1.Columns.Remove("TestProperty") 
Cuestiones relacionadas