• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

ListView e ComboBox - Dúvidas

6 mensagens neste tópico

Boas,

estou com dúvidas no uso de ComboBox e ListView

Eu tenho uma form, com uma listview e uma combobox, o code da form é  (em anexo tenho a execução do programa)


public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            AddComboBox();
            AddListView();
        }

        public void AddComboBox()
        {
            comboBox1.Items.Add("Teste1");
            comboBox1.Items.Add("Teste2");

        }

        public void AddListView()
        {
            listView1.Columns.Add("name", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("notes", 100, HorizontalAlignment.Left);

            ListViewItem item = new ListViewItem();
            item.Text = "Sara";
            item.SubItems.Add("teste");

            listView1.Items.Add(item);

            ListViewItem item1 = new ListViewItem();
            item1.Text = "Manocas";
            item1.SubItems.Add("ipod");

            listView1.Items.Add(item1);
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ComboBox comboBox = (ComboBox)sender;

            string item = (string)comboBox.SelectedItem;


            switch(item)
            {
                case "Teste1":
                    Form newForm1 = new Form();
                    newForm1.Text = "Teste1";
                    newForm1.Show();
                    break;
                case "Teste2":
                    Form newForm2 = new Form();
                    newForm2.Text = "Teste2";
                    newForm2.Show();
                    break;

            }
        }
    }

o método   

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

está-me a dar voltas à cabeça, não consigo perceber muito bem o que os argumentos levam...

Eu quando selecciono uma opção da ComboBox, pretendo ir apanhar o que seleccionou,

que penso que aqui :

 string item = (string)comboBox.SelectedItem;

estou a fazer isso...Mas eu ainda  queria saber que linha da listView eu seleccionei, e apanhar o objecto dessa linha.

Neste caso, estou depois a criar uma Form nova, porque eu vou ter que criar algo parecido....mas isto é um teste para eu apanhar o valor seleccionado da Combobox, da listView....  :hmm:  :wallbash:

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, a ListView também têm esse evento da comboBox "SelectedIndexChanged", portanto também o podes usar.

Depois para ir buscar o item que seleccionaste tens a propriedade SelectedItems. Só que ao contrário da comboBox não te devolve um elemento, mas sim uma colecção de elementos (em concreto vários ListViewItems), já que na ListView tens a possibilidade de ter mais do que 1 item seleccionado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

algo do género:

ComboBox comboBox = (ComboBox)sender;
            
            string itemComboBoxSelected = (string) comboBox.SelectedItem;
      
            int position = IndexItem(itemComboBoxSelected);

            string text = fvListView.SelectedItems[0].SubItems[position-1].Name;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

bem eu acho que precisava do

string itemSelectComboBox = (string)combo.SelectedItem;

listView.SelectedItems;

:hmm: ainda estou analisar....

eu tenho k fazer 2 escolhas, uma na listview ( escolho uma linha ) e outra escolha na combobox, e depois tenho k ir ao objecto da linha seleccionada na listview buscar a collection que tem o nome dado pela escolha da combobox...  :dontgetit:

hummmm....

estou analisar...

bom trabalho e obrigada pela ajuda

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

é o seguinte, eu tenho uma form, que contem uma listview e uma comboBox.

As colunas da listview são o nome das variaveis do meu objecto principal, que contem collection's  de outros objectos. Os dados que aparecem na listview são das varias de tipos simples, quando a variavel é uma collection aparece o seu nome na combobox.

e quando estou a executar esta forma, eu depois vou seleccionar uma linha ( um objecto com um determinado id - unico! ) e vou seleccionar na comboBox a collection  que kero ver, sabendo k seleccionei uma linha da listview.

tenho o método:

private void comboBoxCollection_SelectedIndexChanged(object sender, System.EventArgs e)

       

depois faço :


ComboBox combo = (ComboBox)sender;
            
string objCollection= (string)combo.SelectedItem;
                      

para saber o que seleccionei na combobox

e depois

int id= int.Parse(fvListView.SelectedItems[0].Text)

para ir buscar o id do objecto que seleccionei na listview. ( a primeira coluna é o Id e é um interio )  :)

já agora para uma datagridview, uso

int.Parse(fvGridView.SelectedRows[0].Cells["id"].Value.ToString())

Problema resolvido

bom trabalho

tofas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora