请问TextBox控件怎么让他不能获得鼠标事件?
鼠标对TextBox.Text中的数据不能改变
也就是说只能用键盘对TextBox输入,或者删格(←)
切不能用方向键对其中的光标移动(相当于屏蔽四个方向键)
但是能输入的...不是Enable属性请达人帮我看看~~谢谢了~~
鼠标对TextBox.Text中的数据不能改变
也就是说只能用键盘对TextBox输入,或者删格(←)
切不能用方向键对其中的光标移动(相当于屏蔽四个方向键)
但是能输入的...不是Enable属性请达人帮我看看~~谢谢了~~
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
e.Handled = Shadow(e);
} private bool Shadow(KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Home:
case Keys.End:
case Keys.PageUp:
case Keys.PageDown:
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
return true;
default:
return false;
}
}
你说的是右键复制,剪切吧!
new TextBox().ContextMenu = null;
new TextBox().ContextMenuStrip = null;针对textbox1屏蔽四个方向键:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (textBox1.Focused)
{
if (keyData == Keys.Down ||
keyData == Keys.Up ||
keyData == Keys.Right ||
keyData == Keys.Left)
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}如果通用,最好自己写控件
你说的是右键复制,剪切吧!
恩
还有中情况比如说
文本框里有5个字:
我爱你中国用鼠标可以选种中国,然后往前拖,变成了中国我爱你
这种情况反正是鼠标的事件都不能有..
this.textBox1.ContextMenu = new ContextMenu();
任选一种,为null的话就是默认的右键菜单默认textbox是不能drag的
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 512 || m.Msg == 513 || m.Msg == 517)//鼠标的消息
{
if (c.Focused)
{
return true;//拦截消息
}
}
return false;//不拦截消息
}
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == 512 || m.Msg == 513 || m.Msg == 517)//鼠标的消息
{
if (c.Focused)
{
return true;//拦截消息
}
}
return false;//不拦截消息
}