黑马程序员技术交流社区

标题: 有关c#窗体的相关知识 [打印本页]

作者: $love    时间: 2013-4-25 19:23
标题: 有关c#窗体的相关知识
本帖最后由 $love 于 2013-4-26 13:14 编辑

我按键盘的时候怎么才能不让我按的那个值显示在光标处?
就比如现在光标停在一个文本框中,我在键盘上按了+,我不想让+显示在文本框中!
需要怎么做!
求指点!
谢谢!
作者: 袁梦希    时间: 2013-4-25 19:38
是不是.net的知识?   
作者: $love    时间: 2013-4-25 20:29
袁梦希 发表于 2013-4-25 19:38
是不是.net的知识?

是的!是c#中窗体的知识!
比如说现在光标停在一个文本框中,我现在的需求是这样的!
当按键盘的时候按的是0-9的数字就显示在文本框中!如果不是就不显示!
但是不管显示不显示都要触发KeyDown()事件,也就是键盘按下事件
求详细说明!最好有代码!
谢谢!
作者: 袁梦希    时间: 2013-4-25 20:31
$love 发表于 2013-4-25 20:29
是的!是c#中窗体的知识!
比如说现在光标停在一个文本框中,我现在的需求是这样的!
当按键盘的时候按的 ...

不懂.net的知识,还没有接触到那个语言,你可以去论坛的.net板块,肯定有志同道合的牛人:hug:
作者: $love    时间: 2013-4-25 20:34
袁梦希 发表于 2013-4-25 20:31
不懂.net的知识,还没有接触到那个语言,你可以去论坛的.net板块,肯定有志同道合的牛人 ...

好的!谢谢!
作者: 张林杰    时间: 2013-4-26 01:51
方法一:用Handled属性,背景色不变
  1.         private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
  2.         {
  3.             if (e.KeyChar >= '0' && e.KeyChar <= '9')
  4.             {
  5.                 e.Handled = false;    // 允许输入
  6.             }
  7.             else
  8.             {
  9.                 e.Handled = true;    // 不允许输入
  10.             }
  11.         }
复制代码
//     true 表示跳过控件的默认处理;false 表示还将该事件传递给默认控件处理程序。
方法二:用ReadOnly属性:将文本框改成只读,这种背景色会有所变化
  1.         private void textBox1_KeyDown(object sender, KeyEventArgs e)
  2.         {
  3.             if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
  4.             {
  5.                 textBox1.ReadOnly = false;
  6.             }
  7.             else
  8.             {
  9.                 textBox1.ReadOnly = true;//只读
  10.             }                  
  11.         }
复制代码

作者: $love    时间: 2013-4-26 13:13
张林杰 发表于 2013-4-26 01:51
方法一:用Handled属性,背景色不变//     true 表示跳过控件的默认处理;false 表示还将该事件传递给默认 ...

谢谢!:handshake
作者: 张林杰    时间: 2013-4-26 15:32
$love 发表于 2013-4-26 13:13
谢谢!

:handshake不客气~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2