저는 실시간 편집을 허용하는 프로그램에서 일하고 있습니다. 읽기 전용 모드의 RTbox를 사용하여 텍스트를 보여줍니다.TextChanged 이벤트에서 RichTextBox 텍스트를 다른 Richtextbox로 빠르게 설정하는 방법은 무엇입니까?
public class Texts : RichTextBox
{
Paragraph p = new Paragraph();
FlowDocument fd = new FlowDocument();
TextRange tr;
public Texts()
{
//_RtStylish is a class I made to create all the Brushes, Bitmaps and fonts stuff. It's kind of long to do this for each one so I implemented it to just write a simple line with my class.
Background = _RtStylish._tr_cl;
Foreground = _RtStylish._stdCl;
BorderThickness = _RtStylish.t_flat;
Width = 100;
Height = 30;
FontFamily = _RtStylish._font("Arial");
FontSize = 40;
Document = fd;
}
public void _text(string txt)
{
p.Inlines.Add(txt);
fd.Blocks.Add(p);
//To add text I just write RichTextBox._text("Something");
}
public string _readText()
{
tr = new TextRange(fd.ContentStart, fd.ContentEnd);
return tr.Text;
}
//This returns a string with the text inside the RTbox
public void _Cleartxt()
{
p.Inlines.Clear();
fd.Blocks.Clear();
p.Inlines.Add("");
fd.Blocks.Add(p);
}
//Clears my box
public void _alignment(int n)
{
switch (n)
{
case 0:
fd.TextAlignment = TextAlignment.Center;
break;
case 1:
fd.TextAlignment = TextAlignment.Justify;
break;
case 2:
fd.TextAlignment = TextAlignment.Left;
break;
case 3:
fd.TextAlignment = TextAlignment.Right;
break;
}
}
}
문제는 내가 진짜의 축소 사본이며, 할 수있는 두 번째 창을 가지고있다 :
은 내가이 사용자 정의 요소 클래스를 만들어 텍스트를 읽기/쓰기를 용이하게하기 위하여 실시간 편집을 위해 RTbox에서 텍스트를 변경하십시오. 그래서 내가 한 것은이 사건이었고, 모든 부자 상자에게주고 : 나는 텍스트 상자를 취소하지 않으면
private void _text(Object o, TextChangedEventArgs e)
{
if(_Tmod.IsFocused)
{
_title._Cleartxt();
_title._text(_Tmod._readText());
}
else if(_Qmod.IsFocused)
{
_question._Cleartxt();
_question._text(_Qmod._readText());
}
else if(_Amod.IsFocused)
{
_ans._Cleartxt();
_ans._text(_Amod._readText());
}
}
가 이전 텍스트 + = 새로운 텍스트를 떠날 것이다. 예를 들어, 기본 창 텍스트에 "Hellowww"라고 입력 한 다음 RTbox 편집기로 수정하고 "a"가 표시되면 "HellowHellowa"를 추가하여 상자를 지워야합니다.
괜찮 았지만 사용자가 편집기의 텍스트를 입력 할 때 주 창에 표시 될 때 다소 느려집니다. 이것은 Box doccument를 지우고 텍스트를 변경할 때마다 새 블록을 추가하기 때문에 발생한다고 생각합니다. 텍스트 상자의 텍스트를 변경할 때 다른 텍스트 상자에 텍스트를 할당하는 더 빠른 방법이 있습니까?
WinForms에서 그것은 TextBox1.Text = EditorTextbox.Text;
과 같을 것이고 뒤떨어지지 않습니다. 뒤늦은 말은 긴 텍스트를 쓰는 사이에 약간의 일시 중지가 필요하다는 뜻입니다. 비록,이 모든 문자를 놓치지 않고 내가
에게 :(윈폼이 같은 작업을 수행하는 모든 개선 방법을 랙이 볼 수있는 프로그램을 좋아하지 않아?
당신은 데이터 바인딩을 생각 해 봤나? – user2588666