Это всегда работало хорошо на меня.
необходимо рассмотреть немного более сложный сценарий, который может сделать три вещи.
Добавляют crontab строку; уверение этого это не существовало. Добавление, когда это уже существует, плохо.
Удаляют crontab строку. Возможно, только предупреждение, если это не существовало.
комбинация А вышеупомянутых двух функций для замены crontab строки.
Вам нужно будет создать свою собственную форму, сделать ее модальной, изменить z-порядок, чтобы он всегда был сверху, и фиксировал все нажатия клавиш и щелчки мыши.
Всегда наверху: http://www.codeguru.com/cpp/wd/dislog/article.php/c1857
Взгляните на эту статью
Примеры MessageBox.Show в Windows Forms C #
Изменить:
Вы также можете использовать самое верхнее свойство формы, чтобы сделать его поверх всех окон в данном приложении.
Как: держать форму Windows наверху
Чтобы отобразить форму в виде модального диалогового окна, вызовите метод ShowDialog .
Form frmAbout = new Form();
frmAbout.ShowDialog();
Если стандартная реализация MessageBox
не делает то, что вам нужно, вам придется создать свою собственную форму и использовать метод ShowDialog ()
.
I Думаете, вы ищете системное модальное диалоговое окно.
Предыдущая ветка:
Как отобразить окно сообщения в C # как системное модальное окно?
Похоже, окно сообщения отображается в другом потоке. Вам необходимо убедиться, что вы вызываете 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. Это более сложный сценарий.