none
Ordenação de CHECKBOX RRS feed

  • Pergunta

  • Tenho um programa que pega os dados(titulo) da BD e gera um checkbox para cada um dos nome pegos do BD e coloca em um painel ordenado por numeração do checkbox, porem acrescentei que alem de pegar do BD ele também pegar de um arquivo INI, que acrescenta no final. Como fazer que apos inserido os checkbox ele seja ordenado de acordo com chekbox.name?

    Segue parte do código.

            while (((DbDataReader) this.dtr).Read())
            {
              if (num1 == num3)
              {
                x += 150;
                y = 0;
                num3 += int32;
              }
              CheckBox checkBox = new CheckBox();
              checkBox.Name = Convert.ToString(num2);
              checkBox.Location = new Point(x, y);
              checkBox.Height = 17;
              checkBox.Width = 150;
              checkBox.Cursor = Cursors.Hand;
              checkBox.Text = string.Concat(((DbDataReader) this.dtr)[0]);
              this.panel6.Controls.Add((Control) checkBox);
              this.save.Add(string.Concat(((DbDataReader) this.dtr)[1]));
              y += 17;
              ++num1;
              ++num2;
            }
            ((DbDataReader) this.dtr).Close();
            ((DbConnection) this.Conn).Close();
    
                    ///////////////// o novo código inserido
    
                    var file = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "/atalho.ini").FullName.ToString();
                    MessageBox.Show(file);
                    if (System.IO.File.Exists(file))
                    {
                        while (true)
                        {
                            section = secao.ToString();
                            if(Read(section,"titulo", file)=="")
                            {
                                if(secao == 1)
                                {
                                    
                                }
                                break;
                            }
                            secao = secao + 1;
                        }
                        MessageBox.Show(section);
                        for (int i = 1; i < secao; i++)
                        {
                            if ((Read(i.ToString(), "salvar", file) != ""))
                            {
                                MessageBox.Show(Read(i.ToString(), "salvar", file));
                                var titulo = Read(i.ToString(), "titulo", file);
                                var salvar = Read(i.ToString(), "salvar", file);
                                if (num1 == num3)
                                {
                                    x += 150;
                                    y = 0;
                                    num3 += int32;
                                }
                                CheckBox checkBox = new CheckBox();
                                checkBox.Name = Convert.ToString(num2);
                                checkBox.Location = new Point(x, y);
                                checkBox.Height = 17;
                                checkBox.Width = 150;
                                checkBox.Cursor = Cursors.Hand;
                                checkBox.Text = titulo;
                                this.panel6.Controls.Add((Control)checkBox);
                                this.save.Add(salvar);
                                y += 17;
                                ++num1;
                                ++num2;
                            }
                        }
                    }
                }

    segunda-feira, 10 de julho de 2017 01:13

Respostas

  • Sugiro que altere seu código para que consulte o banco de dados e o arquivo INI, então preencha um DataTable ou collection. Caso opte pelo DataTable, você pode utilizar o seguinte código para aplicar uma ordenação:

       DataView dv = dataTable.DefaultView;
       dv.Sort = "COLUNA desc";
       DataTable sortedDT = dv.ToTable();

    Daí a partir deste DataTable você cria sua lista de CheckBox. 


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta Osvaldo1br terça-feira, 11 de julho de 2017 01:35
    segunda-feira, 10 de julho de 2017 12:06