User control con caracteristicas del DataGridView

Discussion in 'ASP .Net Building Controls' started by VictorLeo, Aug 22, 2007.

  1. VictorLeo

    VictorLeo Guest

    Hola.

    Me encargaron hacer un user control
    Es un user control al cual por defecto tiene los botones Adicionar,
    Modificar, Eliminar, Consultar, Buscar, Imprimir, Salir.
    Este user control tiene una propiedad donde se pude cambiar los
    botonos por Aceptar , Cancelar

    Tambien puedes agregarle o quitar botones (aqui uso un smart tag que
    me levanta una pantalla winforms donde agrego o quito los botones)
    todo esto en tiempo de diseño el problema viene cuando ejecuto el
    winforms donde he agregado mi user control.

    Por ejemplo mi user control tiene los botones standar por default
    Adicionar, Modificar, Eliminar, Consultar, Buscar, Imprimir, Salir. y
    elimine y cambie algunos quedando asi Cargar, Anular, Marcar cuando
    ejecuto el winforms me muestra los botones standar Adicionar,
    Modificar, Eliminar, Consultar, Buscar, Imprimir, Salir. y cuando
    regresa a modo edicion me sigue mostrando Adicionar, Modificar,
    Eliminar, Consultar, Buscar, Imprimir, Salir. todo lo que hize se
    perdio.

    Lo que se me ocurrio es ver como lo hace el gridview ya que alli se
    hace mas o menos lo que intento hacer puedes agregar columnas mediante
    smart tag e incluso levantas una ventana donde personalizas la columna
    y lo que pones en modo diseño se mantentiene.
    Me fije en el codigo del diseñador y me llamo la atencion estas lineas
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).BeginInit()
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).EndInit()
    Esto lo pone al agregar un DataGridView

    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
    Me.DataGridView1 = New System.Windows.Forms.DataGridView
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).BeginInit()
    Me.SuspendLayout()
    '
    'DataGridView1
    '
    Me.DataGridView1.ColumnHeadersHeightSizeMode =
    System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
    Me.DataGridView1.Location = New System.Drawing.Point(12, 37)
    Me.DataGridView1.Name = "DataGridView1"
    Me.DataGridView1.Size = New System.Drawing.Size(240, 150)
    Me.DataGridView1.TabIndex = 0
    '
    'Form4
    '
    Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    Me.ClientSize = New System.Drawing.Size(292, 273)
    Me.Controls.Add(Me.DataGridView1)
    Me.Name = "Form4"
    Me.Text = "Form4"
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).EndInit()
    Me.ResumeLayout(False)

    End Sub
    Friend WithEvents DataGridView1 As
    System.Windows.Forms.DataGridView

    Y cuando agregar columnas
    Private Sub InitializeComponent()
    Me.DataGridView1 = New System.Windows.Forms.DataGridView
    Me.Column1 = New
    System.Windows.Forms.DataGridViewTextBoxColumn
    Me.Column2 = New
    System.Windows.Forms.DataGridViewTextBoxColumn
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).BeginInit()
    Me.SuspendLayout()
    '
    'DataGridView1
    '
    Me.DataGridView1.ColumnHeadersHeightSizeMode =
    System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
    Me.DataGridView1.Columns.AddRange(New
    System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2})
    Me.DataGridView1.Location = New System.Drawing.Point(12, 37)
    Me.DataGridView1.Name = "DataGridView1"
    Me.DataGridView1.Size = New System.Drawing.Size(240, 150)
    Me.DataGridView1.TabIndex = 0
    '
    'Column1
    '
    Me.Column1.HeaderText = "Column1"
    Me.Column1.Name = "Column1"
    '
    'Column2
    '
    Me.Column2.HeaderText = "Column2"
    Me.Column2.Name = "Column2"
    '
    'Form4
    '
    Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    Me.ClientSize = New System.Drawing.Size(292, 273)
    Me.Controls.Add(Me.DataGridView1)
    Me.Name = "Form4"
    Me.Text = "Form4"
    CType(Me.DataGridView1,
    System.ComponentModel.ISupportInitialize).EndInit()
    Me.ResumeLayout(False)

    End Sub
    Friend WithEvents DataGridView1 As
    System.Windows.Forms.DataGridView
    Friend WithEvents Column1 As
    System.Windows.Forms.DataGridViewTextBoxColumn
    Friend WithEvents Column2 As
    System.Windows.Forms.DataGridViewTextBoxColumn

    Al parecer el DataGridView es un contenedor y las columnas son
    controles que se agregan al DataGridView tambien me percate que el
    archivo de recurso pone esto
    Column1.UserAddedColumn Sytem.Boolean True
    Column2.UserAddedColumn Sytem.Boolean True

    Bueno se que tengo que usar la misma logica que tiene el DataGridView
    pero no sabria por donde empezar ya que intente usar
    System.ComponentModel.ISupportInitialize pero me sale error haber si
    alguien tiene un ejemplo o pista de por donde empezar la solucion de
    esto . De antemano gracias
     
    VictorLeo, Aug 22, 2007
    #1
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.