Combobox

0

Cześć wam.
Jest jest możliwość ustawienia w Combobox coś na zasadzie Multiline w texboxie.
Wczytuje plik txt:
123
234
345
Problem polega że w Comboboxie utrzymuje wszystko w jednej lini
123234345

0

Może dlatego, że w pliku .txt masz znak nowego wiersza \n, który combobox ignoruje

0

7791011327
432423432
432423
543543
435
345
34543
434

screenshot-20181007134813.png

Tak wygląda moja sytuacja

0

Dobrze by było jakbyś pokazał jak twoja sytuacja wygląda w kodzie ;) wczytujesz dane z pliku w całości, albo wrzucasz do combo w całości

0

Plik txt jest pobierany z pulpitu.


```        private async void BtWczytaj_Click(object sender, EventArgs e)
        {
            using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Text Documents|*.txt", ValidateNames = true, Multiselect = false })
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    using(StreamReader sr = new StreamReader(ofd.FileName))
                    {
                        Txt.Text = await sr.ReadToEndAsync();
                    }


                }
            }
0

Domyślam się, że to nie tyle początki z C#, a bardziej z samym programowaniem. Jeszcze wrzuć jak dodajesz to do comboboxa.

0

Masz tu działajacy kod:

var s = System.IO.File.ReadAllText("tekst.txt");
combo.Items.Add(s);
0
                    using(StreamReader sr = new StreamReader(ofd.FileName))
                    {
                        Txt.Text = await sr.ReadToEndAsync();
                    }

Czytasz wszystko za jednym razem a Text zapewne nie potrafi sobie poradzic z bialymi znakami

pytanie jaki to combobox? jaki framework?

jak debugujesz, co zawiera Text? Czy zawiera biale znaki?

1

Przetestuj może to ci pomoże

        private void button1_Click(object sender, EventArgs e) => AddNumbersToComboBox();

        private void AddNumbersToComboBox()
        {
            var opf = new OpenFileDialog{ Filter = @"*.txt|" };
            if (opf.ShowDialog() != DialogResult.OK) return;
            var path = Path.GetFullPath(opf.FileName);
            using (var stream = new StreamReader(path))
            {
                var fileValues = stream.ReadToEnd();
                var fileItems = fileValues.Split('\n');
                comboBox1.Items.AddRange(fileItems);
            }
        }
0

    private void BtWczytaj_Click(object sender, EventArgs e) => AddNumbersToTxt();
    
    private void AddNumbersToTxt()
    {
        var opf = new OpenFileDialog { Filter = @"*.txt|" };
        if (opf.ShowDialog() != DialogResult.OK) return;
        var path = Path.GetFullPath(opf.FileName);
        using (var stream = new StreamReader(path))
        {
            var fileValues = stream.ReadToEnd();
            var fileItems = fileValues.Split('\n');
            Txt.Items.AddRange(fileItems);
        }
    }

użyłem Twojego kodu,mimo to po wczytaniu nie pobiera mi danych z comboboxa. Jest jaka opcja aby w tym kodzie zrobić że zawartość pliku bedzie int?
W comboboxie pierwsza linijka jest pusta i do tego wykonuje weryfikacje,lecz jak wybiorę kolejne a w tym przypadku juz sa cyfty to jest brak weryfikacji

0

Sprawdź tak powinno być ok

 using (var stream = new StreamReader(path))
            {
                var fileValues = stream.ReadToEnd();
                var fileItems = fileValues.Replace("\r", "").Split('\n').ToArray();
                foreach (var item in fileItems)
                {
                    var itemTrim = item.Trim();
                    if (string.IsNullOrEmpty(itemTrim)) continue;
                    int.TryParse(itemTrim, out int result);
                    comboBox1.Items.Add(result);
                }
            }

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.