C# winform里头插入了一个Webbrowser,browser载入一个网页a.html,a.html里头有onload="self.focus"。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform里头插入了一个Webbrowser,browser载入一个网页a.html,a.html里头有onload="self.focus"。相关的知识,希望对你有一定的参考价值。
现在的问题是,我把winform这个使用this.Hide隐藏掉,没想到由于a.html使用了self.focus(),在webbroswer载入a.html的时候,winform跑出来见人了,我的天,怎么处理呢?
参考技术A winform是webbroswer的容器,webbroswer是a.html的容器。如果要呈现这个a.html,那winform肯定得出现啊。楼主能不能把情况说完整一点,例如你这个东西是干嘛的……
就楼主当前描述的情况来看,你把onload的代码去掉不久OK了
RichTextBox C# 设置插入符号位置 winforms
【中文标题】RichTextBox C# 设置插入符号位置 winforms【英文标题】:RichTextBox C# Set caret location winforms 【发布时间】:2011-06-22 14:20:16 【问题描述】:我正在构建一个聊天应用程序,用户将其文本输入到富文本框中。
在富文本框中有一个初始文本,上面写着:“我:”。
现在,当用户按下主页按钮时,我希望插入符号位于“Me:”字符串之后。因此对于 Shift+Home 组合或三次鼠标单击或 Ctrl + 左光标等。
有什么办法吗?
我已经试过了
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetCaretPos(int X, int Y);
提前致谢, 盎司。
【问题讨论】:
【参考方案1】:您可以使用富文本框的SelectionStart
和SelectionLength
属性设置插入符号的位置。将SelectionLength
设置为0,然后将SelectionStart
设置为您希望插入符号出现的位置。
SelectionStart
的文档说:
如果控件中没有选择文本,则此属性指示新文本的插入点或插入符号。
Win32 API 函数SetCaretPos
的级别太低,无法满足您的需求。
【讨论】:
【参考方案2】:Winforms:RichTextBox.SelectionStart & 将 RichTextBox.SelectionLength 设置为 0。
WPF:RichTextBox.CaretPosition
【讨论】:
感谢宽限期,现在看来我复制了您的答案! ;-) 确实哈哈,我编辑完看到你已经发了。【参考方案3】:使用Select 方法:
public void Select(
int start,
int length
)
richTextBoxUserText.Select(richTextBoxUserText.TextLength, 0);
【讨论】:
【参考方案4】:RichTextBox1.SelectionStart = Pos;
RichTextBox1.SelectionLength = 0;
RichTextBox1.ScrollToCaret();
【讨论】:
【参考方案5】:发现它在属性 SelectionProtected 上搜索
richTextBoxUserText.Text = INITIAL_TEXT;
richTextBoxUserText.SelectAll();
richTextBoxUserText.SelectionColor = Color.Red;
richTextBoxUserText.SelectionProtected = true;
richTextBoxUserText.SelectionLength = 0;
richTextBoxUserText.SelectionStart = richTextBoxUserText.TextLength + 1;
【讨论】:
@David,保护文本不被删除的解决方案是使用 SelectionProtected 属性。为了防止用户选择它,需要额外的工作......你在哪里告诉我这个? @os 您在原始问题的任何地方都没有提到保护文本。另外,我很确定 'richTextBoxUserText.SelectionStart = richTextBoxUserText.TextLength + 1' 会抛出一个超出范围的异常。 @David 是的,我没有提到,因为我不知道......而且它不会抛出 @oz 很抱歉我没有提到保护,但我没有看到你问题的那一部分。 "如果您将此属性设置为超出控件中文本长度的位置,则选择开始位置将放在最后一个字符之后。" - 这解释了它......你的草率编码得到了补偿! :)以上是关于C# winform里头插入了一个Webbrowser,browser载入一个网页a.html,a.html里头有onload="self.focus"。的主要内容,如果未能解决你的问题,请参考以下文章
RichTextBox C# 设置插入符号位置 winforms
尝试将数据插入多个表时出错 [C# Winform SQL Server] [关闭]
C# winform中dataGridView控件如何插入、删除、更新记录,操作完成后怎样写回数并保存据库,怎么写代码?
如何在 C# 中由 .NET WebBrowser 控件托管的页面中调用 JavaScript 方法并将参数传递给 JavaScript 方法? [复制]