Jump to content

Alinhar células de datagridview


j.mendes24
 Share

Go to solution Solved by j.mendes24,

Recommended Posts

boas pessoal eu tenho um datagridview e o seguinte codigo:

Dim CONN As New SqlConnection(ConnStr)
        Dim SQL As String
        SQL = "SELECT * FROM ABC where ABC = " & Ano & " AND Cod = " & Cod & " order by Lin asc"


        Dim DA As SqlDataAdapter = New SqlDataAdapter(SQL, CONN)
        Dim DS As New DataSet()

        DA.Fill(DS, "ABC")

        Me.DGridArt.DataSource = DS.Tables("ABC")

        DGridArt.Columns(0).Visible = False
        DGridArt.Columns(1).Visible = False
        DGridArt.Columns(2).Visible = False
        DGridArt.Columns(3).HeaderText = "Código"
        DGridArt.Columns(3).Width = 100
        DGridArt.Columns(4).HeaderText = "Designação"
        DGridArt.Columns(4).Width = 150
        DGridArt.Columns(5).HeaderText = "Qtd"
        DGridArt.Columns(5).Width = 30
        DGridArt.Columns(6).HeaderText = "Preço Unitário(€)"
        DGridArt.Columns(6).Width = 128
        DGridArt.Columns(7).HeaderText = "Desconto(%)"
        DGridArt.Columns(7).Width = 80
        DGridArt.Columns(8).HeaderText = "Valor(€)"
        DGridArt.Columns(8).Width = 100
        DGridArt.Columns(9).HeaderText = "IVA(%)"
        DGridArt.Columns(9).Width = 45

e o que eu queria, era alinhar os titulos dos campos ao centro, e os conteudos, uns à direita e outros á esquerda.

alguem sabe como fazer?

Link to comment
Share on other sites

Para alinhar todos os títulos (headers) ao centro, é fácil porque fazes um ciclo. Quanto aos conteúdos, visto que queres uns à direita e outros ao centro, tens de especificar.

Ciclo para os headers:

' Ciclo para fazer alteração em todas as colunas;
                For Each columns As DataGridViewColumn In Me.DataGridView1.Columns
                    ' Define as propriedades para todas as colunas;
                    Me.DataGridView1.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
                 Next

Quanto à outra questão, fazes assim:

Me.DataGridView1.Rows(0).Cells(2).Style.Alignment = DataGridViewContentAlignment.MiddleRight
Link to comment
Share on other sites

quer dizer dar da, eu e que tenho algumas colunas invisiveis e nao tava a dar. desculpa.

agr a qestao e que isso faz so a celula que eu indico. o que eu quero é a coluna toda expeto os titulos.

por exemplo a coluna um toda a direita e a coluna 2 toda a eskerda.

Link to comment
Share on other sites

Tu não te estás a fazer perceber.

            Coluna1      Coluna2

Linha1    Célula        Célula

Linha2    Célula        Célula

No teu primeiro post pediste para por as colunas todas ao centro (ou seja os títulos, ou seja os headers). E o ciclo que te dei faz isso.

Agora, pelo exemplo que eu te dei em cima, creio que ficas a perceber o que são colunas, o que são linhas, o que são células, diz-me o que queres realmente fazer.

Link to comment
Share on other sites

sim eu percebi isso ja. eu quer que o titulo das colunas fique ao centro.

e depois por exemplo, quero que o conteudo de todas as celulas da coluna1, exepto o titulo da mesma, fique a direita. e todo o conteudo de todas as celulas da coluna2, exepto o titulo da mesma, fique á direita.

ja percebeste?

Link to comment
Share on other sites

Por acaso já pensaste em por em prática o que acabaste de dizer ou pensar sequer em como fazer?

É que isso é outro ciclo como fiz em cima para as colunas, só tens de mudar para linhas..

                ' Ciclo para fazer alteração em todas as linhas;
                For Each rows As DataGridViewRow In Me.DataGridView1.Rows
                     ' Define as propriedades para todas as linhas;
                    Me.DataGridView1.Rows(rows.Index).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
                Next

Se queres que os títulos fiquem ao centro, fazes o outro ciclo que te dei no outro post.

Link to comment
Share on other sites

ja ja tinha tentado.

e ja tinha posto esse codigo que me deste agora o ultimo.

mas esse poem tudo alinhado a direita.

e eu quero as duas primeiras colunas alinhadas á esquerda e as outras á direita. execpto os titulos

eu tentei isto:

For Each rows As DataGridViewRow In Me.DataGridView1.Rows

                    ' Define as propriedades para todas as linhas;

                    Me.DataGridView1.Rows(rows.Index).Cells(1).Alignment = DataGridViewContentAlignment.MiddleLeft

                Next

mas ao por Cells(1). ele depois não tem o alignment

Link to comment
Share on other sites

 For Each columns As DataGridViewColumn In Me.DataGridView1.Columns
            DataGridView1.Columns(columns.Index).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
        Next
        DataGridView1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DataGridView1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
Link to comment
Share on other sites

  • Solution

resolvido. podemos fazer de duas maneiras.

assim:

'alinhar as o titulo das colunas da DGridArt
        For Each columns As DataGridViewColumn In Me.DGridArt.Columns
            ' Define as propriedades para todas as colunas;
            Me.DGridArt.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
        Next

        'alinha o conteudo das celulas
        For Each columns As DataGridViewColumn In Me.DGridArt.Columns
            DGridArt.Columns(columns.Index).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
        Next
        DGridArt.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DGridArt.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft

ou assim:

For Each columns As DataGridViewColumn In Me.DGridArt.Columns
            ' Define as propriedades para todas as colunas;
            Me.DGridArt.Columns(columns.Index).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
        Next

DGridArt.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DGridArt.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DGridArt.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DGridArt.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        DGridArt.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.