كيف يمكنني الحصول على التسمية التوضيحية لرسالة البريد الإلكتروني؟

StackOverflow https://stackoverflow.com/questions/932401

  •  06-09-2019
  •  | 
  •  

سؤال

أقوم بإجراء مربع رسالة مخصصة يتيح لك نسخ النص، لكنني أردت أن أنظر إلى مربع رسالة قياسي تماما، لذلك أود تعيين نص الأزرار إلى أي لغة النظام، حيث تقوم فئة MessageBox. هل يعرف أحد كيفية الحصول على هذا النص ("نعم"، "لا"، "إلغاء"، إلخ)؟

هل كانت مفيدة؟

المحلول

شكرا على إجاباتك مع رابط Snarfblam يمكنني معرفة الباقي.

class Program {

[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int LoadString(IntPtr hInstance, uint uID, StringBuilder lpBuffer, int nBufferMax);
[DllImport("kernel32")]
static extern IntPtr LoadLibrary(string lpFileName);

private const uint OK_CAPTION = 800;
private const uint CANCEL_CAPTION = 801;
private const uint ABORT_CAPTION = 802;
private const uint RETRY_CAPTION = 803;
private const uint IGNORE_CAPTION = 804;
private const uint YES_CAPTION = 805;
private const uint NO_CAPTION = 806;
private const uint CLOSE_CAPTION = 807;
private const uint HELP_CAPTION = 808;
private const uint TRYAGAIN_CAPTION = 809;
private const uint CONTINUE_CAPTION = 810;

static void Main(string[] args) {
    StringBuilder sb = new StringBuilder(256);

    IntPtr user32 = LoadLibrary(Environment.SystemDirectory + "\\User32.dll");

    LoadString(user32, OK_CAPTION, sb, sb.Capacity);
    string ok = sb.ToString();

    LoadString(user32, CANCEL_CAPTION, sb, sb.Capacity);
    string cancel = sb.ToString();

    LoadString(user32, ABORT_CAPTION, sb, sb.Capacity);
    string abort = sb.ToString();

    LoadString(user32, RETRY_CAPTION, sb, sb.Capacity);
    string retry = sb.ToString();

    LoadString(user32, IGNORE_CAPTION, sb, sb.Capacity);
    string ignore = sb.ToString();

    LoadString(user32, YES_CAPTION, sb, sb.Capacity);
    string yes = sb.ToString();

    LoadString(user32, NO_CAPTION, sb, sb.Capacity);
    string no = sb.ToString();

    LoadString(user32, CLOSE_CAPTION, sb, sb.Capacity);
    string close = sb.ToString();

    LoadString(user32, HELP_CAPTION, sb, sb.Capacity);
    string help = sb.ToString();

    LoadString(user32, TRYAGAIN_CAPTION, sb, sb.Capacity);
    string tryAgain = sb.ToString();

    LoadString(user32, CONTINUE_CAPTION, sb, sb.Capacity);
    string cont = sb.ToString();

}

نصائح أخرى

يبدو أن هذه السلاسل مخزنة في مكتبة User32.dll. هناك تفاصيل في هذه المناقشة في المنتدى الأساسي النقي، نحو الأسفل.

هناك مقال عن CodeProject.com الذي يتحدث عن توطين صناديق الرسائل - قد تجد هذا الرابط مفيد ...

http://www.codeproject.com/kb/miscctrl/localizer_messageBox.aspx.

آمل أن يساعد :)

قد تفتح system.windows.forms.dll في العاكس ومعرفة كيفية تعيين نص الزر.

في الوقت الذي كتبته هذه الرسالة، يمكنك كتابة "نعم"، "لا"، "موافق"، "إلغاء" ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top