当前位置: 代码迷 >> .NET Framework >> 模拟软键盘,入门水准,求指教
  详细解决方案

模拟软键盘,入门水准,求指教

热度:139   发布时间:2016-05-01 23:36:29.0
模拟软键盘,入门水平,求指教
在winform的环境下做一个登陆主界面,重点做小键盘这个模块

这是界面。。
现在遇到一个小问题就是点击button{↑}来实现字母小写到小写之间的切换
求大神帮我给点提示
------解决方案--------------------
 //假设箭头按钮事件是btnUpperOrLower_Click
private void btnUpperOrLower_Click(object sender, EventArgs e)
{
   Button btn=sender as Button;
   int offset;
   if(btn.Text=="↑")
   {
      offset=-32;
      btn.Text="↓";
   }
   else
   {
      offset=32;
      btn.Text="↑";
   }

    //假设你的按钮都在Panel1上
   foreach(Control c in Panel1.Controls)
   {
      if(c is Button) 
      {
         if((c.Text>="A" && c.Text<="Z") 
------解决方案--------------------
 (c.Text>="a" && c.Text<="z"))
         {
             c.Text=(C.Text[0] + offset).ToString();
         }
      }
   }
}
 
------解决方案--------------------
首先,把所有按钮放到一个Panel中,这样用一个事件就处理所有按钮的响应了,我这里用按钮文字的颜色表示Shift键的状态,你也可以用一个变量表示:
        public Form1()
        {
            InitializeComponent();

            foreach (Control c in panelKeyboard.Controls)
            {
                c.Click += c_Click;
            }
        }

        void c_Click(object sender, EventArgs e)
        {
            if (sender == buttonLeftShift 
------解决方案--------------------
 sender == buttonRightShift)
            {
                if (buttonRightShift.ForeColor == Color.Red)
                {
                    buttonLeftShift.ForeColor = buttonRightShift.ForeColor = SystemColors.ControlText;
                    foreach (Control c in panelKeyboard.Controls)
                    {
                        c.Text = c.Text.ToLower();
                    }
                }
                else
                {
                    buttonLeftShift.ForeColor = buttonRightShift.ForeColor = Color.Red;
                    foreach (Control c in panelKeyboard.Controls)
                    {
                        c.Text = c.Text.ToUpper();
                    }
                }
            }
            else if (sender == buttonBackspace)
            {
                if (textBox1.SelectionLength > 0)
                {
  相关解决方案