문제

텍스트를 복사 할 수있는 사용자 정의 메시지 상자를 만들고 있지만 표준 메시지 상자처럼 보이기를 원했기 때문에 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/localizing_messagebox.aspx

도움이되기를 바랍니다 :)

System.windows.forms.dll in을 열 수 있습니다 반사기 버튼 텍스트를 어떻게 설정하는지 확인하십시오.

해당 메시지를 입력 할 때 "예", "아니오", "OK", "취소"를 입력 할 수있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top