小编dar*_*021的帖子

使用较新的RichEdit版本?

我尝试在C#上使用RichTextBox,但发现它对于处理数千行长的文本来说太慢了。经过一番谷歌搜索后,我发现这是因为默认情况下.net使用RichEdit 2.0,而解决方案是改为使用RichEdit 5.0。

C#RichEditBox具有极慢的性能(加载4分钟),已解决

它工作正常,文本显示的时间是几秒钟,而不是几分钟。但是,作为那种不关心个人项目兼容性的人,我想找到RichEdit的更高版本。我发现最新版本是8.0,整个版本都作为riched20.dll发行,部分包含在msftedit.dll中。

http://blogs.msdn.com/b/murrays/archive/2006/10/14/richedit-versions.aspx

http://blogs.msdn.com/b/murrays/archive/2012/03/03/richedit-8-0-preview.aspx

但是,msdn的文档以4.1停止,(我认为是)该项目的一名开发人员声称他们不再在上述博客中提供公共文档。

https://msdn.microsoft.com/zh-CN/library/windows/desktop/bb787873(v=vs.85).aspx

到目前为止,我已经能够明确运行msftedit.dll的RichEdit 2.0和5.0,但是所有其他版本都使我难以理解。例如,尽管约翰·克伦肖(John Crenshaw)评论说RichEdit 6.0可以正常工作,但我却无法使用它。除上述msftedit-2.0和5.0组合以外的任何尝试都将导致Application.Run()出现“窗口类名称无效”错误。(该程序在C#中,但是我没有这样标记它,因为我担心这个问题可能不是C#特定的问题。)该代码几乎是第一个链接中解决方案的精确副本,如下所示:

class Textbox : RichTextBox
{
[DllImport("kernel32.dll", EntryPoint = "LoadLibraryW", CharSet = CharSet.Unicode, SetLastError = true)]
private static extern IntPtr LoadLibraryW(string s_File);

public static IntPtr LoadLibrary(string s_File)
{
    IntPtr h_Module = LoadLibraryW(s_File);
    if (h_Module != IntPtr.Zero)
        return h_Module;

    int s32_Error = Marshal.GetLastWin32Error();
    throw new Exception("LoadLibrary Failed with: "+s32_Error);
}

protected override CreateParams CreateParams
{
    get
    {
        CreateParams i_Params = base.CreateParams;
        try
        {
            // Available since XP SP1
            LoadLibrary("MsftEdit.dll"); …
Run Code Online (Sandbox Code Playgroud)

.net richedit richtextbox

5
推荐指数
2
解决办法
2959
查看次数

getElementsByName('q')[0]返回undefined

我正在尝试在聚焦时让文本框放大

相关的HTML代码是

<input class="tbox" name="q" type="text" />
Run Code Online (Sandbox Code Playgroud)

由于tbox是页面中每个文本框的标记,我必须使用该名称.

我试过这个javascript

window.onload = init();
function init()
{
    var arr = new Array();
    arr = document.getElementsByName("q");
    var querybox = arr[0];
    querybox.addEventListener('onfocus', wasclicked, false);
    querybox.addEventListener('onblur', lostfocus, false);
}

function wasclicked(form)
{
    form.q.style['width'] = '500px';
}
    function lostfocus(form)
{
    form.q.style['width'] = '276px';
}
Run Code Online (Sandbox Code Playgroud)

调试控制台告诉我,我不能在未定义的上使用addEventListener.

我不熟悉javascript,所以我尝试[0] .value也无济于事.

html javascript

1
推荐指数
1
解决办法
388
查看次数

标签 统计

.net ×1

html ×1

javascript ×1

richedit ×1

richtextbox ×1