2014-06-16 15 views
0

이 같은 코드는 나에게 내가 갖는 예외의 스택 트레이스 보여주고 있습니다MessageBox의 콘텐츠를 N 개의 에피소드로 나누려면 어떻게해야합니까?

catch (Exception x) 
{ 
    MessageBox.Show(string.Format("Booboo ({0}) in buttonGetDeviceLangVal_Click(). StackTrace == {1}", 
     x.Message, x.StackTrace)); 
} 

을 ...하지만 때문에 아주 작은 망할 것 진기한 (핸드 헬드 장치)의 창자에서 전체 성명서를 볼 수 없습니다 부동산 제약에; 나는 MessageBox를 더 높이 올릴 수 없습니다. 머리 위로 머리를 부딪 치고 지붕에 구멍을 만들어서 이야기의 나머지 부분을 볼 수 없도록합니다.

그래서 MessageBox에서 문자열을 "에피소드"로 분할하여 순환시킬 수 있습니까?

내 생각 (의사)이이 같은 것입니다 : "거기"

catch (Exception x) 
{ 
    const int MAX_CHARS_TO_SHOW = 314; 
    string exmsg = string.Format("Booboo ({0}) in 
     buttonGetDeviceLangVal_Click(). StackTrace == {1}", 
     x.Message, x.StackTrace); 
    int msglen = exmsg.Len; 
    int charsDisplayed = 0; 
    while (charsDisplayed < msglen) do 
    { 
     string exmsgepisode = String.Copy(exmsg, charsDisplayed, MAX_CHARS_TO_SHOW); 
     MessageBox.Show(exmsgepisode); 
     charsDisplayed += charsDisplayed; 
    } 
} 

...하지만 내가 누군가를 생각한다 나는 잘 이해 할수 않았다 ... 더 좋은 아이디어가 이미이 문제를 해결했다?

+1

당신이 만약 http://stackoverflow.com/questions/419019/split-list-into-sublists-with-linq – gunr2171

+2

의/중복 가능성을 살펴보십시오 메시지 상자 체인을 사용하면 우연한 "확인"클릭이 모퉁이를 돌면 관련 부분이 사라집니다. 다중 행, 읽기 전용 텍스트 상자 및 세로 스크롤 막대를 사용하여 자신의 메시지 함 롤링하는 방법은 어떻습니까? –

+0

나는 우연한 "ok"클릭에 대해 걱정하지 않는다; 이것은 나 자신을위한 일시적인 디버깅 쓰레기 용 비트 일뿐입니다. –

답변

0

이 작동 :

catch (Exception x) 
{ 
    const int MAX_CHARS_TO_SHOW = 314; 
    string exmsg = string.Format("Boo-boo in buttonGetDeviceLangVal_Click(): == {0}", x); 
    int msglen = exmsg.Length; 
    int charsDisplayed = 0; 
    while (charsDisplayed < msglen) 
    { 
     int CharsToGrab = MAX_CHARS_TO_SHOW; 
     int CharsLeft = msglen - charsDisplayed; 
     if (CharsLeft < MAX_CHARS_TO_SHOW) CharsToGrab = CharsLeft; 
     string msgepisode = exmsg.Substring(charsDisplayed, CharsToGrab); 
     int episodeLen = msgepisode.Length; 
     MessageBox.Show(msgepisode); 
     charsDisplayed = charsDisplayed + episodeLen; 
    } 
} 

불행하게도, 그 결과 이중 에피소드 메시지 박스를 보여주는이 underlying problem으로 많은 나에게 도움이되지 않았다. 그것은 단지 (한마디) 저에게 말한다 :

Control-OnClick 
Button-Onclick 
ButtonBase-WinProc 
Forms.Ctrl_InternalWinProc 
Microsoft.AGL.Forms.EVL_EnterMainLoop 
ApplicationRun