MessageBox в c#

Это всегда работало хорошо на меня.

необходимо рассмотреть немного более сложный сценарий, который может сделать три вещи.

  1. Добавляют crontab строку; уверение этого это не существовало. Добавление, когда это уже существует, плохо.

  2. Удаляют crontab строку. Возможно, только предупреждение, если это не существовало.

  3. комбинация А вышеупомянутых двух функций для замены crontab строки.

5
задан Noon Silk 8 September 2009 в 04:32
поделиться

5 ответов

Вам нужно будет создать свою собственную форму, сделать ее модальной, изменить z-порядок, чтобы он всегда был сверху, и фиксировал все нажатия клавиш и щелчки мыши.

Всегда наверху: http://www.codeguru.com/cpp/wd/dislog/article.php/c1857

4
ответ дан 13 December 2019 в 05:39
поделиться

Взгляните на эту статью

Примеры MessageBox.Show в Windows Forms C #

Изменить:

Вы также можете использовать самое верхнее свойство формы, чтобы сделать его поверх всех окон в данном приложении.

Как: держать форму Windows наверху

Чтобы отобразить форму в виде модального диалогового окна, вызовите метод ShowDialog .

Form frmAbout = new Form();
frmAbout.ShowDialog();
4
ответ дан 13 December 2019 в 05:39
поделиться

Если стандартная реализация MessageBox не делает то, что вам нужно, вам придется создать свою собственную форму и использовать метод ShowDialog () .

2
ответ дан 13 December 2019 в 05:39
поделиться

I Думаете, вы ищете системное модальное диалоговое окно.

Предыдущая ветка:

Как отобразить окно сообщения в C # как системное модальное окно?

1
ответ дан 13 December 2019 в 05:39
поделиться

Похоже, окно сообщения отображается в другом потоке. Вам необходимо убедиться, что вы вызываете MessageBox.Show в основном потоке пользовательского интерфейса. Ниже приведен фрагмент кода, который иллюстрирует способ достижения этого:

public class FooForm: Form
{

   //This is just a button click handler that calls ShowMessage from another thread.
   private void ButtonShowMessage_Click(object sender,EventArgs e)
   {
     //Use this to see that you can't interact with FooForm before closing the messagebox.
     ThreadPool.QueueUserWorkItem(delegate{ ShowMessage("Hello World!");});

     //Use this (uncomment) to see that you can interact with FooForm even though there is a messagebox.
     //ThreadPool.QueueUserWorkItem(delegate{ MessageBox.Show("Hello World!");});
   }

   private void ShowMessage(string message)
   {
     if( InvokeRequire)
     {
       BeginInvoke(new MethodInvoker( () => MessageBox.Show(message))); 
     }
     else
     {
       MessageBox.Show(message);
     }
   }    
} 

Я предполагаю, что у вас нет сценария, в котором у вас есть несколько потоков пользовательского интерфейса, и когда один из них открывает окно сообщения, вы хотите, чтобы это окно сообщения было модальным для весь UI. Это более сложный сценарий.

1
ответ дан 13 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: