Avatar billede sidenius Nybegynder
07. august 2008 - 13:11 Der er 3 kommentarer og
1 løsning

checkbox problem

Hej

Jeg bruger Visual Studio 2008 og når jeg skal vise en liste frem i en listbox ved hjælp af at trykke på min ene checkbox, bliver den ganske vist "hakket af", men i listbox'en nedenunder viser den først indholdet af listen når jeg fjerner "markeringen" igen. Er det noget under properties for den checkbox der skal ændres ?

Hvis jeg så sætter "markeringen" på checkbox'en på igen, viser den herefter kun den første linie i min liste.

Håber nogen kan hjælpe
Avatar billede hmortensen Nybegynder
07. august 2008 - 14:17 #1
Prøv at vise os koden du har lavet.
Og forklar hvordan det skal virke.
Avatar billede sidenius Nybegynder
07. august 2008 - 14:46 #2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;


namespace Filmliste
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
           

        }

        private void button1_Click(object sender, EventArgs e)
        {
            OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Filmliste.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");
            OleDbCommand command = connection.CreateCommand();

            command.CommandText = "SELECT * from [Ark1$] where Titel like @searchString";
            command.Parameters.Add(new OleDbParameter("@searchString", "%" + this.textBox1.Text + "%"));

            OleDbDataAdapter adapt = new OleDbDataAdapter(command);

            DataTable dt = new DataTable();
            adapt.Fill(dt);
           
            this.listBox1.DataSource = dt;
            this.listBox1.DisplayMember = "Titel";
       
        }

        private void checkBox3_CheckedChanged(object sender, EventArgs e)
        {
            OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Børnefilm.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");
            OleDbCommand command = connection.CreateCommand();

            command.CommandText = "SELECT * from [Ark1$] where Børnefilm like @searchString";
            command.Parameters.Add(new OleDbParameter("@searchString", "%" + this.listBox1.Text + "%"));

            OleDbDataAdapter adapt = new OleDbDataAdapter(command);

            DataTable dt = new DataTable();
            adapt.Fill(dt);

            this.listBox1.DataSource = dt;
            this.listBox1.DisplayMember = "Børnefilm";
       
       
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Boxset.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");
            OleDbCommand command = connection.CreateCommand();

            command.CommandText = "SELECT * from [Ark1$] where Boxset like @searchString";
            command.Parameters.Add(new OleDbParameter("@searchString", "%" + this.listBox1.Text + "%"));

            OleDbDataAdapter adapt = new OleDbDataAdapter(command);

            DataTable dt = new DataTable();
            adapt.Fill(dt);

            this.listBox1.DataSource = dt;
            this.listBox1.DisplayMember = "Boxset";
        }
    }
}
Avatar billede sidenius Nybegynder
07. august 2008 - 14:46 #3
sådan ser det ud lige pt
Avatar billede annxii Nybegynder
09. august 2008 - 16:28 #4
prøv at undersøg i hver af CheckedChanged metoderne om den checkbox de tilhører er checked. CheckedChanged bliver også eksekveret når checkboxen bliver unchecked så det kunne da godt give et mærkeligt output. Eksempelvis ved checkBox2_CheckedChanged så pak hele din kodeblok i metoden ind i if(this.checkBox2.Checked).

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
    if(this.checkBox2.Checked)
    {
        OleDbConnection connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Boxset.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");
            OleDbCommand command = connection.CreateCommand();
    ......
    ......
    }
}

...men generalt ville man nok flytte referencen til dit DataTable uden for metoderne og sætte dette til DataSource for listboxen i f.eks Form_Load og så kun ændre på DataTable's indhold og ikke lave en ny databind hver gang du laver en databasekald.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester