解决粘贴乱码问题

This commit is contained in:
Colin 2023-08-31 15:45:15 +08:00
parent 55dcfed653
commit 392d4b5124

View File

@ -22,7 +22,7 @@ namespace DocumentManagement
public CompilerResults cr;
public Type type;
private WriterControl myEdit;
private ElementEventTemplate eet;
public bool IsLoad = false;
@ -32,6 +32,7 @@ namespace DocumentManagement
public EventCodeCompiler(ref WriterControl myEditControl, string strMouseClickEvent, string strContentChangedEvent)
{
myEdit= myEditControl;
eet = new ElementEventTemplate();
eet.MouseClick += new ElementMouseEventHandler(eetChk_MouseClick);
eet.MouseDblClick += Eet_MouseDblClick;
@ -53,11 +54,17 @@ namespace DocumentManagement
{
var clip = Clipboard.GetText()?.Trim();
xife.Text = clip;
args.Cancel = true;
return;
args.InsertingElements.Clear();
args.InsertingElements.Add(new XTextStringElement() { Text = clip });
args.InsertingElements.AddRange(clip.Select(c => new XTextCharElement { Text = c.ToString() }));
return;
//xife.Text = clip;
args.Cancel = true;
xife.InsertBefore(new XTextBlockElement { Text = clip }, xife.NextElement);
//myEdit.Refresh();
xife.Parent.EditorRefreshView();
var pos = myEdit.SelectionStartPosition;
return;
}
//byte[] originalBytes = Encoding.UTF8.GetBytes(txt); // 这里使用 UTF8 是假设或猜测
//string decodedString = Encoding.GetEncoding("GB2312").GetString(originalBytes); // 用其他编码尝试解码
@ -69,16 +76,6 @@ namespace DocumentManagement
private void Eet_KeyUp(object eventSender, ElementKeyEventArgs args)
{
// 判断 Ctrl 键是否被按下
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
// 判断 V 键是否被按下
if (args.KeyCode == Keys.V)
{
// Ctrl+V 被按下,执行相应的操作
MessageBox.Show("Ctrl+V was pressed!");
}
}
if (args.KeyCode == Keys.V && args.Control == true)
{
if ((eventSender as XTextDocument).CurrentInputField != null)