Andre11 Posted November 15, 2016 at 12:45 PM Report #600533 Posted November 15, 2016 at 12:45 PM 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 🙂
apocsantos Posted November 15, 2016 at 06:03 PM Report #600538 Posted November 15, 2016 at 06:03 PM 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"
Andre11 Posted November 15, 2016 at 07:37 PM Author Report #600542 Posted November 15, 2016 at 07:37 PM 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
vikcch Posted November 15, 2016 at 11:41 PM Report #600548 Posted November 15, 2016 at 11:41 PM 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...
Andre11 Posted November 16, 2016 at 03:20 AM Author Report #600551 Posted November 16, 2016 at 03:20 AM 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?
vikcch Posted November 16, 2016 at 02:45 PM Report #600562 Posted November 16, 2016 at 02:45 PM 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++; } } }
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now