У меня есть ListBox, который заполняется записями из папки, состоящей из текстовых файлов (в поле списка берутся только имена файлов). У меня проблемы с обновлением списка при каждом добавлении файлов. Вы добавляете файлы/поручения, нажимая кнопку в основной программе, которая выдает второе окно, в котором вы записываете свое поручение и выбираете его приоритет (низкий, средний или высокий).Update ListBox из другого класса, не работающего
Желаемый эффект будет заключаться в том, что окно списка будет обновляться при добавлении новых текстовых файлов/поручений, чтобы включить его, однако на данный момент это не так, и я попытался привести примеры в сети посредством используя DataStore
и Binding
среди прочего, но пока ничего не работало. Основная программа выглядит следующим образом:
P.S. Программа наполовину шведская, но по существу, «Skapa lapp» = «Create errand», которая здесь является единственной важной.
И это изображение ниже просто для того, чтобы показать вам, как работают окна списка и поручения/текстовые файлы (текстовые файлы добавляются в поле списка с помощью цикла foreach
).
При создании нового поручения (Skapa Lapp-кнопка), вы будете представлены в новом окне:
При написании нового поручения в этом окне и выбирая приоритет, затем нажмите «Создать поручение» (или Skapa lapp), следующее нажатие кнопки (упрощенная версия):
private string mappNamn = @"C:\Errands\";
Lapphantering uppdateraFönster = new Lapphantering();
private void buttonSkapaLapp_Click(object sender, EventArgs e)
{
try
{
//When choosing the low priority radio button, do this:
if (radioButtonLågPrio.Checked)
{
using (var file = new StreamWriter(Path.Combine(mappNamn, "1 - " + textBoxLappText.Text + ".txt")))
{
uppdateraFönster.listBoxLappar.Items.Add(textBoxLappText.Text);
uppdateraFönster.Update(); //This doesn't work.
uppdateraFönster.Refresh(); //Nor does this.
}
}
Назад к главному окну (Lapphantering), окно списка обновляется только при перезапуске приложения снова и пусть основная программа добавить файлы инициализации компонента:
public Lapphantering()
{
InitializeComponent();
//For each file, add new files to the list box.
DirectoryInfo dinfo = new DirectoryInfo(@"C:\Errands\");
FileInfo[] Filer = dinfo.GetFiles("*.txt");
mappNamn = dinfo.FullName;
foreach (FileInfo file in Filer)
{
listBoxLappar.Items.Add(Path.GetFileNameWithoutExtension(file.Name));
}
}
Итак, как можно Я обновляю/обновляю окно списка каждый раз, когда добавляю новый файл errand/text без необходимости перезапуска приложения каждый раз?
Do вы получаете исключение в попытке? –
Нет, ничего. – tobulos1
Когда вы делаете это: 'uppdateraFönster.listBoxLappar.Items.Add (textBoxLappText.Text);' вы пишете в список в новом классе 'Lapphantering uppdateraFönster = new Lapphantering();' вместо передачи текущего класса. Это означает, что вы добавляете элементы в совершенно другой список. – KSib