在Microsoft Office Word中有一個名爲Format Painter的函數,它複製文本的所有屬性(Color,FontFamily & FontSize)並在等待下一次選擇時存儲它,這是一個函數我還需要爲學校做一個作業,但我不知道如何做到這一點,我嘗試將屬性存儲在變量中,並在SelectionChanged函數中使用它們將它們粘貼到選定的文本上,但是這樣做了不工作,因爲我需要它的工作,我需要它的工作完全一樣在Word中,但這將是在C#richtextboxC#word like FormatPainter
任何幫助,將不勝感激。
我一直試圖做這樣的:
private bool copiedSelection = false;
void FormatPainter()
{
var fc = new FontConverter();
Font f1 = new Font(rtxtInhoud.SelectionFont.FontFamily, rtxtInhoud.SelectionFont.Size);
Color c1 = rtxtInhoud.SelectionColor;
var fontAsString = fc.ConvertToInvariantString(f1);
Font f2 = (Font)fc.ConvertFromInvariantString(fontAsString);
font = f2.ToString();
kleur = c1.ToString();
var color = Regex.Match(kleur, @"\[(.*?)\]").Groups[1];
kleur = color.ToString();
copiedSelection = true;
}
private void rtxtInhoud_SelectionChanged(object sender, MouseEventArgs e)
{
if (copiedSelection == true &&))
{
rtxtInhoud.SelectionColor = ColorTranslator.FromHtml(kleur);
}
copiedSelection = false;
}
保持編碼,你在正確的軌道上。兩個注意事項:1)不需要將顏色投射到絃樂或背部! 2)'SelectionChanged'事件不僅在做出選擇時觸發,而且在被移除時觸發。所以你應該從這樣的檢查開始:'if(!copiedSelection || RTB.SelectionLength <= 0)return;' – TaW 2015-03-31 20:25:39
所以基本上,確保SelectionChanged不會在選擇被刪除時觸發@TaW – Simplicity 2015-03-31 20:27:22
確實或者你清除複製的選擇,而沒有任何樣式.. – TaW 2015-03-31 20:31:39