如何使richtextbox控件失去焦点? 我现在想在richtextbox中用鼠标点击时,失去光标,双击也不能选择内容。因为只设置 readonly属性false的话,光标还是能在控件中点击,也能全选。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做个隐藏控件比如一个TextBox tbHide;//RichTextBox Enter 事件中tbHide.Focus(); 可以这样,控制只能选0个字符:private void richTextBox1_SelectionChanged(object sender, EventArgs e){ richTextBox1.Select(richTextBox1.SelectionStart, 0);} 屏蔽RichTextBox的消息:可以将下面的代码加到你窗体Form1的后面,然后修改Designe文件,让this.richTextBox1 = new PoorBox(); public class PoorBox : RichTextBox { const int DBCLCIK = 0x0203;//双击 const int GETFOCUS = 0x0007;//得到焦点 protected override void WndProc(ref Message msg) { if (msg.Msg == DBCLCIK || msg.Msg == GETFOCUS) { return; } base.WndProc(ref msg); } } 在鼠标事件里设置:e.Handled=true;或enable=false或重写WndProc方法,捕获信息。 我是想在richtextbox中鼠标一点击后,光标就消失,这样也就不会就选中文本了。 这样试试,不过你一旦输入字符,光标又有了[DllImport("user32", EntryPoint = "HideCaret")] private static extern bool HideCaret(IntPtr hWnd);private void richTextBox1_MouseDown(object sender, MouseEventArgs e) { HideCaret(((RichTextBox)sender).Handle); } 防止复制的话你可以复写ctrl+c和鼠标copy事件使他们无效化,最彻底的方法是干脆不要用richbox,用picturebox,图片显示点阵字 请问不知如何针对特定的richtextbox进行控制? 重写RichTextBox类,禁止复制。public class NewTextBox : RichTextBox{ protected override void WndProc(ref Message msg) { if (msg.Msg == 0x0300 || msg.Msg == 0x0301) return; // 禁止复制或剪切 base.WndProc(ref msg); }} 如何取字符串 GIS中的Gmap.net开源插件在winform下的使用? c#中调用反正切函数,可是计算结果却不对 我架设了个流媒体服务器,不知道用何方法防止盗链和下载 如何获得局域网内其他机器的主机名hostname?谢谢回答! 不知道天涯问答的验证码地址能获取到吗? DirectoryEntry.Invoke c# winform自定义控件属性设置问题 哪位高手愿意试试 窗体上有很多TextBox控件,如何让任意一个TextBox控件获得焦点时,其文本被选中? “T”: 创建变量类型的实例时无法提供参数 跨网段没有办法获取指定IP机器的Mac么?
//RichTextBox Enter 事件中
tbHide.Focus();
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
richTextBox1.Select(richTextBox1.SelectionStart, 0);
}
this.richTextBox1 = new PoorBox(); public class PoorBox : RichTextBox
{
const int DBCLCIK = 0x0203;//双击
const int GETFOCUS = 0x0007;//得到焦点
protected override void WndProc(ref Message msg)
{
if (msg.Msg == DBCLCIK || msg.Msg == GETFOCUS)
{
return;
}
base.WndProc(ref msg);
}
}
或enable=false
或重写WndProc方法,捕获信息。
[DllImport("user32", EntryPoint = "HideCaret")]
private static extern bool HideCaret(IntPtr hWnd);
private void richTextBox1_MouseDown(object sender, MouseEventArgs e)
{
HideCaret(((RichTextBox)sender).Handle);
}
{
protected override void WndProc(ref Message msg)
{
if (msg.Msg == 0x0300 || msg.Msg == 0x0301) return; // 禁止复制或剪切
base.WndProc(ref msg);
}
}