独孤求败 发表于 2014-11-30 16:58:11

这是一个关于sender的问题

这是代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Operator
{
    public partial class Form1 : Form
    {
      public Form1()
      {
            InitializeComponent();
      }

      private void Form1_Resize(object sender, EventArgs e)
      {
            if (this.WindowState == FormWindowState.Maximized)
            {
                this.WindowState = FormWindowState.Normal;
            }
      }

      private void txtNum1_KeyPress(object sender, KeyPressEventArgs e)
      {
            TextBox currentTextBox = sender as TextBox;
            if (e.KeyChar < '0' || e.KeyChar > '9')   //不是数字
            {
                e.Handled = true;
            }
            if (e.KeyChar == 8)
            {
                e.Handled = false;
            }
            if (e.KeyChar == 46)
            {
                if (currentTextBox.Text.IndexOf(".") == -1)
                {
                  if (currentTextBox.SelectionStart > 0)
                  {
                        e.Handled = false;
                  }
                }
            }

      }

      private void btnCompute_Click(object sender, EventArgs e)
      {
            double num1 = Convert.ToDouble(txtNum1.Text);
            double num2 = Convert.ToDouble(txtNum2.Text);
            switch (cboOperator.Text)
            {
                case "+":
                  lblResult.Text = (num1 + num2).ToString();
                  break;
                case "-":
                  lblResult.Text = (num1 - num2).ToString();
                  break;
                case "*":
                  lblResult.Text = (num1 * num2).ToString();
                  break;
                case "/":
                  lblResult.Text = (num1 / num2).ToString();
                  break;
            }
      }

      
    }
}

这是应用界面


代码的目的是让两个textbox开头不能输入小数点且只能输入一个小数点,为什么我的第二个textbox达不到这样的效果

独孤求败 发表于 2014-11-30 16:59:54

这是打包的程序

ibcadmin 发表于 2014-11-30 17:52:43

txtNum1_KeyPress    因为你只给 txtNum1给了键盘事件 没有给txtNum2事件   

独孤求败 发表于 2014-11-30 18:47:30

ibcadmin 发表于 2014-11-30 17:52
txtNum1_KeyPress    因为你只给 txtNum1给了键盘事件 没有给txtNum2事件

我知道,所以我用了Textbox cureetTextbox=sender as Textbox按理会有效果的,但是达不到啊

ibcadmin 发表于 2014-11-30 18:52:13

独孤求败 发表于 2014-11-30 10:47
我知道,所以我用了Textbox cureetTextbox=sender as Textbox

你的text2绑定这个事件了么? 没绑定绑啊
页: [1]
查看完整版本: 这是一个关于sender的问题