#c#
#c#
Вопрос:
теперь программа покажет Messagebox и будет ждать решения пользователя. Как сделать так, чтобы программа не ждала? Покажите Messagebox, ant продолжайте. (Мне не нужно действие пользователя. Мне просто нужно показать текст)
Или, может быть, лучший вариант, чем сообщать информацию в новое окно?
Я надеюсь понять мою проблему.
Ответ №1:
быстрый и простой способ: используйте BackgroundWorker
для размещения вашего продолжительного задания и используйте события worker’s для вывода сообщений в потоке пользовательского интерфейса.
редактировать: возможно, потребуется отобразить сообщения в виде журнала сообщений.
public partial class MainWindow : Form
{
#region Constructor
public MainWindow()
{
InitializeComponent();
}
#endregion
#region Events
private void button_Click(object sender, EventArgs e)
{
listBox.Items.Add("Job started!");
backgroundWorker.RunWorkerAsync();
}
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i < 10; i )
{
// send data from the background thread
backgroundWorker.ReportProgress(0, i);
}
}
private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// communicate with UI thread
listBox.Items.Add(string.Format("Received message: {0}", e.UserState));
}
private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
listBox.Items.Add("Job done!");
}
#endregion
}
Ответ №2:
Создайте новую форму, поместите в нее некоторые элементы управления и покажите ее пользователю:
new PopupForm().Show();
Комментарии:
1. Спасибо, но как использовать «новую всплывающую форму (). Показать ();? Не понимает.
2. Вам нужно добавить новую форму Windows в ваш проект, присвоив ей имя
PopupForm
.
Ответ №3:
Если вам просто нужно показать окно уведомления, то это было бы справкой, которую я написал когда-то назад; работает как Outlook, как окно уведомлений.