MessageBox.Show从右到左阅读不起作用

Shm*_*hen 6 c# messagebox winforms

嘿,我会简单的.我想制作一个这个字符串"abc"的MessageBox,它将从右到左阅读.

我试过这个 Messagebox.Show("abc",MessageBoxOptions.RtlReading);

这有什么用的?

这是我得到的错误:

1:"无法从'System.Windows.Forms.MessageBoxOptions'转换为'string'

2:"无法从'string'转换为'System.Windows.Forms.MessageBoxButtons'"

3:"'System.Windows.Forms.MessageBox.Show(string,string)'的最佳重载方法匹配'有一些无效的参数"

It'*_*ie. 13

如果它没有从左向右显示,请尝试以下操作:

//note the capitalized B in Box
MessageBox.Show(new string("abc".Reverse()), "", MessageBoxButtons.OK, MessageBoxIcons.None, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign);
Run Code Online (Sandbox Code Playgroud)

如果你想要这样的东西:

----------------------------X--
-------------------------------
|                             |
|                             |
|                        cba  |
|                             |
|                        |OK| |
-------------------------------

我认为它与此无关,但主要是你的参数错误.错误.在这里,修复:

//note the capitalized B in Box
MessageBox.Show("abc", "", MessageBoxButtons.OK, MessageBoxIcons.None, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Run Code Online (Sandbox Code Playgroud)

还有一种丑陋的方法可以做到这一点,但这意味着你不必添加额外的内容.首先,创建一个名为MessageBoxEx的类,其内容为......

static class MessageBoxEx
{
    public static void Show(string content, MessageBoxOptions options)
    {
        MessageBox.Show(content, "", MessageBoxButtons.OK, MessageBoxIcons.None,          MessageBoxDefaultButton.Button1, options);
    }
}
Run Code Online (Sandbox Code Playgroud)

并称之为MessageBoxEx.Show("abc", MessageBoxOptions.RtlReading);.


Dar*_*ene 5

编写一个方法,默认所有您不想设置的值。

//Message is the string message and options is where you specify RTL
public void ShowMessageBox(string message, MessageBoxOptions options)
{
    MessageBox.Show(message, "", MessageBoxButtons.OK, MessageBoxIcons.None, MessageBoxDefaultButton.Button1, options);
}
Run Code Online (Sandbox Code Playgroud)

然后你所要做的就是打电话

ShowMessageBox("abc", MessageBoxOptions.RtlReading)
Run Code Online (Sandbox Code Playgroud)


H A*_*døµ 5

我遇到过这样的情况,我发现最好的方法是将两个标志结合起来:RtlReadingRightAlign

MessageBox.Show("Msg body", "Msg title", MessageBoxButton.OK, MessageBoxImage.Warning, 
         MessageBoxResult.OK, MessageBoxOptions.RtlReading | MessageBoxOptions.RightAlign);
Run Code Online (Sandbox Code Playgroud)