我在我的Winforms中使用TinyMce(Windows应用程序)使用C#。其他一切工作正常。iidoEe。我能够获得TinyMce的内容并存储在数据库中。但当我从数据库中提取内容并试图在TinyMce中显示时,内容没有被加载。2事实上SetContent函数根本没有被调用。3我甚至试着不带参数调用SetContent,但它没有被调用。同样,GetContent也被成功调用。下面是这两个函数(tinymce.htm文件中的JavaScript函数)
<script type="text/javascript">
function GetContent() {
alert('GetContent is called');
console.log('GetContent is called');
return tinyMCE.get('editorcontent').getContent();
}
function SetContent(htmlContent) { //This is not called. Even if I remove the htmlContent parameter
alert('SetContent is called');
console.log('SetContent is called');
tinyMCE.get('editorcontent').setContent(htmlContent);
}
</script>
这是我调用这些函数的C#代码(它是一个属性)。
public string HtmlContent
{
get
{
string content = string.Empty;
if (webBrowserControl != null && webBrowserControl.Document != null)
{
object html = webBrowserControl.Document.InvokeScript("GetContent");
content = html as string;
}
return content;
}
set
{
if (webBrowserControl != null && webBrowserControl.Document != null)
{
//Code reaches here. I confirmed through breakpoint. I even tried
//removing the parameter but it didn't worked. SetContent was never
//called.
webBrowserControl.Document.InvokeScript("SetContent", new object[] { value });
}
}
}
问题是什么?我如何在使用C#的winforms(Windows应用程序)中动态设置tinyMCE的内容?
1条答案
按热度按时间eaf3rand1#
我的问题已经解决。张贴回答任何未来的人来此链接与相同的问题。SetContent没有被调用在相同的事件(Form_Load)TinyMCE被初始化(创建)。所以,我用了一个计时器滴答事件(1秒)延迟加载Html使用SetContent。请不要线程。睡眠(在Form_Load)是不起作用的。