Jump to content

Recommended Posts

Posted

Boas pessoal, estou a fazer um projecto c# com ligação ao SQL server que se baseia num sistema de classificação de ligas de futebol. Mas empanquei na altura em que quero mostrar os resultados de cada jornada.

Ou seja, depois de guardar os resultados na tabela jornada onde existem os seguintes campos: idjornada, equipacasa, equipafora, resultcasa, resultfora, liga, nrjornada.

Abro um formulário onde seja possivel mostrar apenas as jornadas já guardadas na base de dados assim deste jeito:

 

 

Jornada 1                                                             Jornada 2                                                 Jornada 3

Braga 2-1 Arouca                                          Boavista 0-0 Chaves                                  xxxxxxxx 2-0 zzzzzzzzzzz

Braga 2-1 Arouca                                          Moreirense 0-1 Porto                                  yyyyyyy 5-1 zzzzzzzzzzz

Porto 1-0 Belenenses                                   Sporting 1-0 Braga                                      ttttttttttt 3-3 oooooooo

Benfica 2-1 Tondela                                      xxxxxx 3-0 yyyyyyyy                                   hhhhhh 2-2 uuuuuuuuuu

 

Qual será a melhor maneira de fazer algo deste genero?

 

Desde já obrigado a todos 🙂

Posted

Boa tarde,

Carregas os dados para datatable, e apresentas os dados ou em gridViews, ou em TextBoxes, isso é praticamente "a gosto".

Cordiais cumprimentos,

Apocsantos

"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Posted

Boas apocsantos,

 

Penso que não me expliquei bem. A minha duvida é como consigo colocar as jornadas no form, por exemplo posicionar as jornadas de modo a apresentar 3 jornadas por fila e a 4ª jornada passa para a fila abaixo e por ai adiante.

 

Cumps

Posted

Boas,

Podes usar um FlowLayoutPanel...
 

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim rand As New Random

        Dim p As New Panel With {
            .Size = New Size(100, 150),
            .BackColor = Color.FromArgb(rand.Next(0, 256), rand.Next(0, 256), rand.Next(0, 256))
        }

        Me.FlowLayoutPanel1.Controls.Add(p)

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.FlowLayoutPanel1.BackColor = Color.Gray
        Me.FlowLayoutPanel1.Size = New Size(350, 500)
        Me.FlowLayoutPanel1.AutoScroll = True
    End Sub
End Class

Cada panel p corresponde a uma jornada, terás de escrever lá os dados, ou poderás fazer o teu próprio controlo com tudo formatadinho ao teu gosto...

Posted

Boas vikcch,

 

Obrigado pela ajuda, vou usar um FlowLayoutPanel como citaste.

Agora a duvida é outra. Como é que consigo acrescentar labels para a linha abaixo? Com este codigo pretendo inserir os registos e fazer uma quebra de linha para os inserir abaixo mas não está a dar certo.

 


            if (dr.HasRows)
            {

                while (dr.Read())
                {

                    
                    Label lbl = new Label();
                    lbl.Text = (dr[1].ToString());
                    Label lbl2 = new Label();
                    lbl2.Text = (dr[2].ToString());
                    Label lbl3 = new Label();
                    lbl3.Text = (dr[3].ToString());
                    Label lbl4 = new Label();
                    lbl4.Text = (dr[4].ToString());

                    System.Environment.NewLine.ToString();
                }

            }

 

O que está errado?

Posted

Pelo que tens aí, tens que posicionar as labels na localização correcta...

Label lbl = new Label() { Location = new Point(0, 0) };

ou

lbl.Location = new Point(0, 0);

Mas podes fazer isso só com uma label...

lbl.TextAlign = ContentAlignment.MiddleCenter;
lbl.Text += "\n" + "teu texto"; // \n quebra a linha

 

Também podes escrever directamente no panel..
 

            if (dr.HasRows)
            {
                Panel p = new Panel() { Size = new Size(100, 150), BackColor = Color.Green };
            	this.flowLayoutPanel1.Controls.Add(p);
                
				using (Graphics g = p.CreateGraphics())
                {
                    Font font = new Font("Arial", 8f);
                    float textHeight = g.MeasureString("@", font).Height;

                    StringFormat format = new StringFormat() { Alignment = StringAlignment.Center };

                    int count = 0;
                    while (dr.Read())
                    {
                        g.DrawString(dr[count + 1].ToString(), font, Brushes.Black, new PointF(p.Width / 2, count * textHeight), format);
                        count++;
                    }
                }
            }

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
×
×
  • 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.