读书人

lt;请问gt; 怎么禁止TextBox与ComboBox选择

发布时间: 2012-01-09 21:05:42 作者: rapoo

<请教> 如何禁止TextBox与ComboBox选择已输入的文本内容???
功能要求:

> > 两者都要保持能正常输入文本, 但是不能用鼠标选择已经输入的文本内容...
> > 重写父类,拓展一个属性,用于控制它们在得到焦点时是否显示[输入光标]...
(第二个要求在TextBox实现了,但是ComboBox用了同样的方法,却不起作用...)

分不多,仅仅30点,但已经是我的全部家产了...

希望大家能积极帮助...

先谢了...

[解决办法]
1.过滤掉粘贴,按键消息
2.参考代码
namespace ComeBoxWithOutMenuDemo
{
public partial class ComeBoxEx : System.Windows.Forms.ComboBox
{
public ComeBoxEx()
{
InitializeComponent();

IntPtr ehWnd = FindWindowEx(base.Handle, IntPtr.Zero, "Edit ", " ");
SubClassHwnd sub = new SubClassHwnd();
sub.AssignHandle(ehWnd);
}

[DllImport( "user32.dll ")]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);

public class SubClassHwnd : System.Windows.Forms.NativeWindow
{
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x7b)
return;
base.WndProc(ref m);
}
}
}
}
[解决办法]
最好在mouseup里写和keyup里写
[解决办法]
你可以在combox的mouseup事件里写this.comboBox1.Select(0, 0);
[解决办法]
把简单的问题搞复杂了!!!

在mouseup里写和keyup里让textBox1.SelectionLength=0就全搞定
[解决办法]
哈哈...

(试了LZ的代码后) 看来好像只有我才听得懂LZ的意思...

LS的,你在文本框多输入一点内容,用您所说的代码,运行后试试用[Shift+方向键]来选取文本...

注意: 由后向前的方向选取,是按住不放的...你会发现总会选中一字符...

读书人网 >C#

热点推荐