<请教> 如何禁止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+方向键]来选取文本...
注意: 由后向前的方向选取,是按住不放的...你会发现总会选中一字符...