>source

VB.NET에서 RichTextBox의 글꼴 모음을 변경하려고합니다

코드 문제 만 찾기 위해 Google 및 특정 사이트를 통해 검색을 시도했습니다. 아무것도 작동하지 않습니다.

FontFamily 변경을위한 코드입니다 (툴 스트립 콤보 버튼입니다).

Private Sub TscFontFamily_TextChanged(sender As Object, e As EventArgs) Handles tscFontFamily.TextChanged
        rtbContent.SelectionFont = New Font(Convert.ToString(tscFontFamily.Text), Convert.ToInt32(tscFontSize.Text))
    End Sub

그리고 FontSize (툴 스트립 콤보 버튼)

Private Sub tscFontSize_TextChanged(sender As Object, e As EventArgs) Handles tscFontSize.TextChanged
        Dim newSize As Single = Convert.ToSingle(tscFontSize.Text)
        rtbContent.SelectionFont = New Font(rtbContent.SelectionFont.FontFamily, newSize)
    End Sub

이것이 말이되기 때문에 효과가 있다고 생각합니까? 그러나 "입력 문자열이 올바른 형식이 아닙니다"라고 말하고 Convert.ToString 및 기타 변환 코드를 제거하면 "문자열" "에서 'Single'유형으로의 변환이 올바르지 않습니다."라고 표시됩니다.

멘티 온과 마찬가지로 실제로 Convert.ToString 및 Convert.ToDouble과 기본적으로 BOTH에 대한 모든 것을 시도했다는 사실입니다.

  • 답변 # 1

    tscFontFamily.Text 에서 ToString을 호출 할 필요가 없습니다.  TextBox의 Text 속성이 String을 반환하기 때문입니다. 본질적 으로이 문자열 값에서 문자열 값을 반환한다고 말합니다.

    Convert.ToInt32는 문자열 값을 Int32 (일명 정수) 값으로 변환하는 빠르고 더러운 작업입니다. 사용자의 입력에 의존하는 경우 거의 항상 Int32.TryParse를 사용해야합니다. 이 메소드는 입력 변환에 성공한 후 전달 된 두 번째 매개 변수가 참조 변수인지에 따라 부울 값을 리턴하므로 메소드의 결과가 True이면 두 번째 매개 변수에 변환 된 값이 포함됩니다. 그러나 단일 값을 원할 경우 실제로는 Single.TryParse를 사용하는 것 같습니다.

    다음은 코드에 변경 사항을 적용하는 예입니다.

    Private Sub tscFontSize_TextChanged(sender As Object, e As EventArgs) Handles tscFontSize.TextChanged
        Dim newSize As Single
        If Single.TryParse(tscFontSize.Text, newSize) Then
            rtbContent.SelectionFont = New Font(rtbContent.SelectionFont.FontFamily, newSize)
        End If
    End Sub
    
    

관련 자료

  • 이전 ggplot2 - x 축 ggplot 테마의 선 두께 늘리기
  • 다음 c++ - 멤버 함수를 멤버 함수로의 포인터로 변환