我遇到了一个问题,我必须以编程方式填充 TextArea。我使用了以下代码。
System.Windows.Forms.HtmlElement reviewText = myDoc.GetElementById("review-text");
reviewText.InnerText = Program.mainForm.richTextBox1.Text.Trim();
这工作正常,它在 TextArea 控件中设置文本。我面临的问题是这段文字看起来很轻。当用户点击此文本时,它会消失。它仅在第一次点击时发生。
所以我尝试了下面的代码,先点击这个框,然后设置文本。
reviewText.InvokeMember("click");
然后尝试在 TextArea 中设置文本,但得到了相同的行为。
我深入研究了页面的源代码,发现了一些与此 TextArea 相关的脚本。
TextArea 的来源
<textarea onkeyup="javascript:yelp.ui.widget.countChars(this.form.comment,5000);" onkeydown="javascript:yelp.ui.widget.countChars(this.form.comment,5000);" name="comment" id="review-text" class="form400" rows="8" cols="40" style="height: 86px;"></textarea>
与 TextArea 关联的脚本
<script type="text/javascript">
var bizName = "Geary Club";
if ($('review-text'))
{
new yelp.ui.widget.DefaultValueTextField($('review-text'), 'Please write here');
}
有人会建议我如何将文本插入到这个 TextArea 控件中吗?
最佳答案
这是 ASP.NET 网络应用程序吗?如果是,则 System.Windows.Forms.HtmlElement 有问题。我认为正在发生的事情是,当您预填充 TextArea 时,您需要以某种方式禁用 new yelp.ui.widget.DefaultValueTextField JavaScript 代码。您是否能够使用具有多行属性集的 ASP.NET TextBox 控件?如果是这样,我会使用它并更改您的顶部代码以仅设置文本框控件的 .Text 属性。
无论哪种方式,在 Javascript 中(如果这是 jQuery),我都会这样做:
if ($('review-text') && $('review-text').val() != "")
{
new yelp.ui.widget.DefaultValueTextField($('review-text'), 'Please write here');
}
只有在没有文本时才会设置默认值。
关于c# - 如何使用mshtml在textarea中输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300918/