jak dobrać się do listboxa

Wątek przeniesiony 2016-04-04 11:02 z C# i .NET przez ŁF.

0

Witam!!!
Mam takie pytanie. Jak oprogramować zdarzenie SelectedIndexChanged dla kontrolki listboxa w taki sposób, że gdy zmieniam zaznaczonego itema(załóżmy, że pierwszy item zaznaczony i tak mam w programie, że gdy się odpala pozycja pierwsza jest zaznaczona) na następny do w poprzednio zaznaczonym itemie podstawiam zawartość z mojej kontrolki textbox. Czy jest to w ogóle możliwe? Siedzę ostatnio w Visual Studio 2015 i próbuję rozgryźć ten problem (polega on na tym jak pobrać index poprzednio zaznaczonego itema)? Podsyłam poniższy kod, ale robi on coś innego, ale wywala mi się apka, czy ktoś może powiedzieć dlaczego tak się dzieje?

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            listBox1.SetSelected(0, true);
        }
        private void button1_Click(object sender, EventArgs e)
        {
      //      listBox1.Items[listBox1.SelectedIndex] = textBox1.Text;
      //      listBox1.SelectedIndex++;
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox1.Items[listBox1.SelectedIndex] = textBox1.Text;
        }  
    }
}
 

Czemu ten sam kod ujęty w komentarzu działa(wiem, że index może wyjść poza zakres, gdyż nie robiłem warunku)?

0
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
      textBox1.Text = listBox1.SelectedItem.ToString();
}  
 
0

Już znalazłem rozwiązanie:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != 0)
                {
                     listBox1.Items[listBox1.SelectedIndex - 1] = textBox1.Text;
                }
        }   

Widzi mnie to, gdyż ostatnio tak zrobiłem i program się zwieszał za każdym razem pokazując błąd wartości indeksu, a dziś ruszył. Ale to produkt Microsoftu, więc należy się spodziewać wszystkiego. Temat można zamknąć.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.