Search code examples
c#winformsmessagebox

MessageBox.Show right to left reading not working


Hey I'll make it simple. I want to make a MessageBox of this string "abc" and it will be read from right to left.

I tried this Messagebox.Show("abc",MessageBoxOptions.RtlReading);

what's worng with this ?

this is the error i get :

1:"cannot convert from 'System.Windows.Forms.MessageBoxOptions' to 'string"

2:"cannot convert from 'string' to 'System.Windows.Forms.MessageBoxButtons'"

3:"The best overloaded method match for 'System.Windows.Forms.MessageBox.Show(string, string)' has some invalid arguments"


Solution

  • If it's not displaying left to right, try this:

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

    If you want something like this:

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

    I think it doesn't have to do with that though, it's mainly you got the parameters wrong. wrong. Here, fixed:

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

    There's also an ugly way to do this, but it means you don't have to add the extraparams. First, make a class called MessageBoxEx, and the contents of it are...

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

    and call it like MessageBoxEx.Show("abc", MessageBoxOptions.RtlReading);.