none
메세지박스에 메세지가 출력될때 적절히 줄바꿈을 하고 싶습니다. RRS feed

  • 질문

  • 메세지 박스를 출력하는 상황에서 리스트에 포함된 항목들을 다음과 같이 보여주고자 합니다.

    "[ItemName01] [ItemName02] [ItmeName03] ... "

    그런데 출력되는 항목이 많을경우

    "[ItemName01] [ItemName02] [ItmeNa

    me03] [ItemName04] [ItemName05]"

    이렇게 리스트의 항목이 잘려서 나옵니다.

    메세지 박스에서 한줄에 출력하는 글자의 수를 계산해서

    "[ItemName01] [ItemName02]

    [ItmeName03] [ItemName04]

    [ItemName05]"

    이렇게 항목이 잘리지 않게 나오도록 하고 싶습니다.

    해상도나 dpi 가 바뀌어도 저렇게 잘리지 않도록

    나오게 하고 싶은데 어떻게 해야 할까요?

    한줄에 잘리지 않고 나올 최대의 항목수를 표현하는것이 목적입니다.

    2018년 1월 30일 화요일 오전 4:23

답변

  • 안녕하세요.

    한글과 영문이 섞여 있는 경우 모두 하나의 기준으로 변환한 다음에 일정한 길이가 넘어가면

    줄바꿈 문자("\n")를 추가하면 될것 같습니다.

    string s = "";

    s+="[ItemName01] ";

    //문자열 길이 검사

    s+="[ItemName02] ";

    //문자열 길이 검사

    s+="\n"; //길이가 일정수준 이상이면 줄바꿈 문자열 추가

    //문자열 길이 초기화

    s+="[ItemName03] ";

    이런식입니다.

    문자열 길이 검사 로직은 다음 글을 참고하시면 될것 같습니다. 한글이든 영문이든 모두 한글자로 취급하려면 마지막의 ASCII로 계산하시면 됩니다.

    http://www.jejusarang.com/?1221669407&PHPSESSID=d058e77fd0e52c20e563cd5d9f8a871c

    그럼 수고하세요.

    2018년 1월 30일 화요일 오전 6:05
  • messagebox에서 문자열 줄바꿈하는 부분은 '\n' 을 통해서 가능하구요, 문제는 DPI aware winform application을 만드셔야 할 듯 한데, 그에 대해서는 https://stackoverflow.com/questions/4075802/creating-a-dpi-aware-application 를 참고해보세요.
    2018년 1월 30일 화요일 오전 6:12

모든 응답

  • 안녕하세요.

    한글과 영문이 섞여 있는 경우 모두 하나의 기준으로 변환한 다음에 일정한 길이가 넘어가면

    줄바꿈 문자("\n")를 추가하면 될것 같습니다.

    string s = "";

    s+="[ItemName01] ";

    //문자열 길이 검사

    s+="[ItemName02] ";

    //문자열 길이 검사

    s+="\n"; //길이가 일정수준 이상이면 줄바꿈 문자열 추가

    //문자열 길이 초기화

    s+="[ItemName03] ";

    이런식입니다.

    문자열 길이 검사 로직은 다음 글을 참고하시면 될것 같습니다. 한글이든 영문이든 모두 한글자로 취급하려면 마지막의 ASCII로 계산하시면 됩니다.

    http://www.jejusarang.com/?1221669407&PHPSESSID=d058e77fd0e52c20e563cd5d9f8a871c

    그럼 수고하세요.

    2018년 1월 30일 화요일 오전 6:05
  • messagebox에서 문자열 줄바꿈하는 부분은 '\n' 을 통해서 가능하구요, 문제는 DPI aware winform application을 만드셔야 할 듯 한데, 그에 대해서는 https://stackoverflow.com/questions/4075802/creating-a-dpi-aware-application 를 참고해보세요.
    2018년 1월 30일 화요일 오전 6:12