簡體   English   中英

如何停止我的粗體/斜體/下划線選項將文本的字體更改回默認字體和大小

[英]How to stop my bold/italic/underline options changing the text's font back to the default font and size

在我的應用程序中,我具有一項功能,允許用戶更改文本的粗體/斜體/下划線樣式。 但是,我注意到,當用戶將文本設為粗體時,它將文本還原為默認大小和字體,然后將其變為粗體。 顯然這是不希望的,因為這將意味着用戶將不得不再次更改文本的字體和大小,這是不希望的。

當前,用於在應用程序的richtextbox中使文本變為粗體的代碼是:

richTextBoxPrintCtrl1.SelectionFont = new System.Drawing.Font(richTextBoxPrintCtrl1.Font,
            richTextBoxPrintCtrl1.SelectionFont.Style ^ FontStyle.Bold);

我要去哪里錯了? 它的確使文本變為粗體,但將文本還原為默認的大小和字體。但是,顏色不受影響。

嘗試使用MSDN提供的示例代碼:

  System.Drawing.Font currentFont = richTextBoxPrintCtrl1.SelectionFont;
  System.Drawing.FontStyle newFontStyle;

  if (richTextBoxPrintCtrl1.SelectionFont.Bold == true)
  {
     newFontStyle = FontStyle.Regular;
  }
  else
  {
     newFontStyle = FontStyle.Bold;
  }

  richTextBoxPrintCtrl1.SelectionFont = new Font(
     currentFont.FontFamily, 
     currentFont.Size, 
     newFontStyle
  );

編輯

根據@abalter的建議,我在此答案中放入了我在下面的注釋中編寫的示例代碼。 該代碼可能更匹配問題中的要求。

if (richTextBoxPrintCtrl1.SelectionFont.Bold == true)
{
    newFontStyle = currentFont.Style ^ FontStyle.Regular;
}
else
{
    newFontStyle = currentFont.Style | FontStyle.Bold;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM