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
Może dlatego, że w pliku .txt masz znak nowego wiersza \n
, który combobox ignoruje
7791011327
432423432
432423
543543
435
345
34543
434
Tak wygląda moja sytuacja
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
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();
}
}
}
Domyślam się, że to nie tyle początki z C#, a bardziej z samym programowaniem. Jeszcze wrzuć jak dodajesz to do comboboxa.
Masz tu działajacy kod:
var s = System.IO.File.ReadAllText("tekst.txt");
combo.Items.Add(s);
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?
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);
}
}
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
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.