标签: messagebox

如何在WPF中为消息框设置不同样式的字体

如何才能非常轻松地获得以下样式的消息框?MessageBox 函数似乎无法解决问题

在此输入图像描述

wpf messagebox

5
推荐指数
1
解决办法
4468
查看次数

来自后台线程的模态消息框

我注意到当 MessageBox 处于模式状态时,行为似乎不一致。

首先,从 UI 线程启动 MessageBox。这会产生一个模态 MessageBox,正如预期的那样:

void MainThreadClick(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Hello!");
    }
Run Code Online (Sandbox Code Playgroud)

接下来,从后台线程启动。这会导致无模式 MessageBox,我猜是因为它不在 UI 线程上?

void WorkerThreadClick(object sender, RoutedEventArgs e)
    {
        ThreadPool.QueueUserWorkItem((x) =>
        {
            MessageBox.Show("Hello!");
        });
    }
Run Code Online (Sandbox Code Playgroud)

接下来,从后台线程启动,但分派到 UI 线程,导致它再次成为模态:

void WorkerThreadClick(object sender, RoutedEventArgs e)
    {
        ThreadPool.QueueUserWorkItem((x) =>
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                MessageBox.Show("Hello!");
            });
        });
    }
Run Code Online (Sandbox Code Playgroud)

最后,这是一个奇怪的问题,与上面类似,但使用 FileSystemWatcher 线程会导致无模式对话框。为什么是这样?...它是在 UI 线程上调用的,那么为什么它不像前面的示例那样是模态的呢?

public MainWindow()
    {
        InitializeComponent();

        m_watcher = new FileSystemWatcher()
        {
            Path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
            NotifyFilter = NotifyFilters.LastWrite,
            IncludeSubdirectories = true,
            Filter = "*.*"
        };

        m_watcher.Changed += …
Run Code Online (Sandbox Code Playgroud)

wpf modal-dialog messagebox background-thread

5
推荐指数
1
解决办法
1379
查看次数

如何在.net core控制台应用程序上显示消息框?

我正在开发 .net core 控制台应用程序。我想在想要退出应用程序时提醒用户。像下面这样;

 MessageBox.Show("Contiue or not", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.None, MessageBoxDefaultButton.Button1) == DialogResult.No)
    Application.Exit();
Run Code Online (Sandbox Code Playgroud)

但我无法将 System.Windows.Forms 引用添加到我的项目中。我收到这个错误。

 Error  CS0234  The type or namespace name 'Forms' does not exist in the namespace 'System.Windows' (are you missing an assembly reference?)    
Run Code Online (Sandbox Code Playgroud)

是否可以在.net core控制台应用程序上显示消息框?

messagebox console-application .net-core

5
推荐指数
1
解决办法
5439
查看次数

C#中的Scrollable MessageBox

我在VS2008,C#中使用Addin,我需要显示消息(错误消息和其他).

我不知道消息的长度,因此我想使用Scrollable MessageBox.

我从2007年开始发现这篇文章:Mike Gold 2007年7月30日

http://www.c-sharpcorner.com/UploadFile/mgold/ScrollableMessageBox07292007223713PM/ScrollableMessageBox.aspx

现在,2011年还有其他好的组件吗?我想评估一些有关它的组件.

更新:

另一个组件,但更旧:MessageBoxExLib http://www.codeproject.com/KB/dialog/MessageBoxEx.aspx

可自定义的.NET Winforms消息框. http://www.codeproject.com/KB/dialog/Custom_MessageBox.aspx

c# scroll add-in messagebox

4
推荐指数
2
解决办法
2万
查看次数

C#:是否有一种winforms方式使C#MessageBox按钮(YesNo)更大?

由于此应用程序的目标是平板电脑,因此拥有更大的MessageBox按钮会更好.

DialogResult dialogResult = MessageBox.Show(
    message, caption,
    MessageBoxButtons.YesNo,
    MessageBoxIcon.Question,
    MessageBoxDefaultButton.Button2);
switch (dialogResult)
{
    case DialogResult.Yes:
        // ...
Run Code Online (Sandbox Code Playgroud)

c# messagebox winforms

4
推荐指数
1
解决办法
3092
查看次数

Windows Phone 7中MessageBox中的TextBox

是否可以为用户插入TextBox以在Windows Phone 7中的MessageBox上输入文本?

谢谢.

textbox messagebox windows-phone-7

4
推荐指数
1
解决办法
4693
查看次数

Caliburn ShowDialog和MessageBox

我正在使用caliburn为MVVM制作一个小型演示应用程序。

现在,我想展示一种MessageBoxMVVM方式。

对于对话框,我创建了一个事件,该事件在ShellView(根视图)中处理,并且仅WindowManager.ShowDialog使用Dialogs ViewModel类型进行调用。似乎对我来说坚持MVVM。

但是,显示消息框并获取其结果的方法是什么(好的还是取消的)?

我已经看到了这个问题,但是也没有答案。

艾森伯格先生亲自回答

“ Caliburn具有用于调用自定义消息框的内置服务。”

谁能说出他的意思?我没有在样本中看到它。

c# wpf messagebox mvvm caliburn.micro

4
推荐指数
2
解决办法
7432
查看次数

销毁gtkmm消息对话框?

我使用gtkmm 3.0.1并且Gtk::MessageDialog在用户单击按钮后创建对象以销毁对话框时没有看到选项.我发现破坏消息对话框的唯一方法是在辅助函数中调用它,但我觉得这有可能被避免.文档中没有提到破坏它的方法,只提到用户需要销毁它.

这是我的代码:

#include <gtkmm.h>
#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

    Gtk::Main kit(argc, argv);
    Gtk::Window client;

    Gtk::MessageDialog dialog("Info", false, Gtk::MESSAGE_QUESTION, Gtk::BUTTONS_YES_NO);
    dialog.set_secondary_text( "Dialog");
    dialog.set_default_response(Gtk::RESPONSE_YES);
    dialog.run();

    cout << "dialog is still open, needs to be destroyed at this point." << endl;

    Gtk::Main::run(client);

    return EXIT_SUCCESS;

}
Run Code Online (Sandbox Code Playgroud)

c++ messagebox gtkmm

4
推荐指数
1
解决办法
1634
查看次数

从线程中显示MessageBox,因为它来自C#/ WPF中的主线程

有一个线程可以抛出异常,当它被捕获时,会显示某个消息框,然后软件关闭.

但问题是,由于它不是程序的主线程,当我显示消息框时,程序窗口保持空闲,供用户与之交互.与主窗口上方显示消息框不同,它不会锁定屏幕.我想避免这种情况.

我想知道最好的方法是什么.到目前为止,我想过使用某种线程通信(从未在C#中使用它)来从主线程中引出消息框.

提高线程:

Thread thread = new Thread(new ThreadStart(MyClass.MyMethod));
thread.IsBackground = true;
thread.Start();
Run Code Online (Sandbox Code Playgroud)

异常的捕获在各个部分MyMethod.它是一个线程,自程序启动以来一直在循环中运行不间断.异常的原因是网络错误.

c# wpf multithreading messagebox

4
推荐指数
1
解决办法
5354
查看次数

如何使用alt + F4阻止任何Form关闭

这与如何禁用Alt + F4结束表格不重复.请阅读原因.

我在我的主表单下创建了一个自定义MessageBox.

在此输入图像描述

并将"Aight"按钮单击监听器设置为:

private void Aight_buton_Click(object sender, EventArgs e)
{
    dr = DialogResult.OK;
    Close();
}
Run Code Online (Sandbox Code Playgroud)

"X"按钮的情况也是如此.按照上面的问题回答我可以做到这一点:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = e.CloseReason == CloseReason.UserClosing;
}
Run Code Online (Sandbox Code Playgroud)

但是因为我Close()Aight_buton_Click它下面使用它仍然注册为e.CloseReason == CloseReason.UserClosing;.所以按键不会关闭我的表单(自定义消息框)也不会Alt+ F4.我想知道具体如何我只能阻止Alt+ F4关闭而不是Close()关闭.请不要使用,ModifierKeys因为它不是最合适的,也不是处理这种情况的最聪明的方法.

.net c# messagebox winforms formclosing

4
推荐指数
2
解决办法
303
查看次数