-
.net平台winform中的TextBox没有GotFocus事件10
。net平台winform中的TextBox没有GotFocus事件,如果用Enter事件代替,单击选中文本框中的内容就不行呀!当我也写了个GotFocus事件,但是触发不了,看来.NET做软件还是有BUGprivate void txtcCusName_Enter(object sender, EventArgs e) { txtcCusName.Select(0, txtcCusName.Text.Length); }
.
问题补充
private void txtcCusName_Enter(object sender, EventArgs e)
{
txtcCusName.BeginInvoke(new MethodInvoker(txtcCusName.SelectAll));
}
问题补充
public Form1()
{
InitializeComponent();
textBox2.Text = "Auto Select Text Demo";
textBox2.Tag = false;
textBox2.GotFocus += new EventHandler(textBox2_GotFocus);
textBox2.MouseUp += new MouseEventHandler(textBox2_MouseUp);
}
void textBox2_MouseUp(object sender, MouseEventArgs e)
{
//如果鼠标左键操作并且标记存在,则执行全选
if (e.Button == MouseButtons.Left && (bool)textBox2.Tag == true)
{
textBox2.SelectAll();
}
//取消全选标记
textBox2.Tag = false;
}
void textBox2_GotFocus(object sender, EventArgs e)
{
textBox2.Tag = true; //设置标记
textBox2.SelectAll(); //注意1
}
问题补充ray_linn 写道我一直懒得理这个帖子。。。。因为觉得太笨的人抱怨总比较多。
直接在click事件里响应就完成了...这样无论是按tab或者click textbox就能选中文字。。。
我问题不是解决了吗,你是不是瞎了眼了?用click事件,太搞笑了吧,难道让他每次单击选中文字。如果设初始值我也不是贴出代码了嘛,要很多行代码才行,我用线程方式一行就可以搞定了,你有本事用一行换一种方法试?
2009年5月04日 09:51
5个答案 按时间排序 按投票排序
-
我一直懒得理这个帖子。。。。因为觉得太笨的人抱怨总比较多。
直接在click事件里响应就完成了...这样无论是按tab或者click textbox就能选中文字。。。2009年5月04日 09:51
-
dotnet666 写道当我也写了个GotFocus事件,但是触发不了,
TextBox上本身没有叫GotFocus的事件。大大敢情是这样写GotFocus的?public class MyTextBox : TextBox { public event EventHandler GotFocus; } public partial class Form1 : Form { public Form1() { InitializeComponent(); textBox2.Text = "Auto Select Text Demo"; textBox2.Tag = false; textBox2.GotFocus += new EventHandler(textBox2_GotFocus); textBox2.MouseUp += new MouseEventHandler(textBox2_MouseUp); } void textBox2_MouseUp(object sender, MouseEventArgs e) { //如果鼠标左键操作并且标记存在,则执行全选 if (e.Button == MouseButtons.Left && (bool)textBox2.Tag == true) { textBox2.SelectAll(); } //取消全选标记 textBox2.Tag = false; } void textBox2_GotFocus(object sender, EventArgs e) { textBox2.Tag = true; //设置标记 textBox2.SelectAll(); //注意1 } }
要真是这么写的,MyTextBox里的GotFocus有了handler,却没人触发,自然是什么也没有。dotnet666 写道看来.NET做软件还是有BUG
……
直接使用TextBox的Enter事件的话,鼠标单击TextBox至少会按顺序触发这几个事件:Enter->MouseDown->Click->MouseUp。Click的默认行为是设置光标位置,所以即使在Enter的handler里调用了SelectAll(),也会在Click时被冲掉。临时解决一下,就在Click里也判断一下是否要SelectAll然后视情况调用就是。2009年5月04日 09:51
相关推荐
肯定不少朋友一看就会觉得再容易不过了:给TextBox添加GotFocus事件,然后在事件中调用TextBox.SelectAll()不就完事了吗?巢皮一开始也理所当然得这么认为,但要是你试试这么做,你会发现的当你用点击鼠标左键让...
总结来说,实现Winform中的TextBox水印提示功能,可以通过自定义控件或使用第三方库来完成,主要涉及控件的重绘、焦点事件以及属性的使用。通过这些技术,我们可以创建出更加友好和直观的用户界面,提高应用程序的...
本篇文章将详细探讨C#中的"LostFocus"和"GotFocus"事件,以及如何在TextBox控件中有效地使用它们。 "LostFocus"事件是在控件失去焦点时触发的事件。当用户点击或选择其他任何控件,或者通过键盘导航离开当前控件时...
在Winform中,由于没有内置的水印属性,我们需要自定义一个TextBox控件,这可以通过继承TextBox类并重写其部分方法来完成。以下是一个简单的步骤概述: 1. **创建自定义控件**: 创建一个新的类,让它继承自System....
这可以通过修改TextBox的BackColor属性来实现,在GotFocus和LostFocus事件中设置相应的颜色。 最后,提示输入数据的形式,这通常涉及到TextBox的Watermark功能。水印是显示在TextBox内部的一种文本提示,当TextBox...
在Windows Forms(WinForms)开发中,我们经常需要在文本框(TextBox)中实现水印效果,即在文本框未输入任何文字时显示一段提示性的文字,一旦用户开始输入,水印文字就会自动消失。本教程将详细介绍如何通过重写...
然而,这种方法的一个小问题是,TextBox的`GotFocus`和`LostFocus`事件默认在Visual Studio的属性面板中不可见。因此,我们需要手动添加这些事件的处理程序,以便在TextBox获得或失去焦点时,控制占位符的显示与隐藏...
为此,我们需要监听TextBox的GotFocus和LostFocus事件。 ```csharp public WatermarkComboBox() { InitializeComponent(); TextBox txt = (TextBox)GetChildAtPoint(new Point(0, 0)); txt.GotFocus += TextBox_...
2. **处理焦点事件**:在自定义的InfoTextBox类中,你需要监听文本框的`GotFocus`和`LostFocus`事件。当文本框失去焦点且内容为空时,显示提示文本;反之,当文本框获得焦点时,如果之前显示了提示文本,则将其清除...
在Windows Forms(WinForm)开发中,虽然TextBox控件提供了基本的自动完成功能,但相比Web应用中的JavaScript插件,其功能相对有限。不过,通过自定义控件和编程,我们可以实现更强大的自动完成功能,比如支持中文...