2

我是 c# 的新手,在查看了关于这个主题的其他线程之后,我仍然不知道如何修复错误:C。我正在尝试制作一个简单的计算器,这是代码:

   //Global Variables 
    string sign;
    double val1;
    double val2;

    int trackkeypoint = 0;

    public void Calculator()

    {
        InitializeComponent();
    }
    private void cmd0_Click(object sender, EventArgs e)
    {
        txtbox.Text = txtbox.Text + cmd0.Text;
    }
    private void cmd1_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd1.Text;
    }
    private void cmd2_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd2.Text;
    }

    private void cmd3_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd3.Text;
    }

    private void cmd4_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd4.Text;
    }

    private void cmd5_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd5.Text;
    }

    private void cmd6_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd6.Text;
    }

    private void cmd7_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd7.Text;
    }

    private void cmd8_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd8.Text;
    }

    private void cmd9_Click(object sender, EventArgs e)
    {
        txtbox.Text=txtbox.Text+cmd9.Text;
    }
     private void cmdequal_Click(object sender, EventArgs e)
    {

         val2 = double.Parse(txtbox.Text);
         double result;

         if(sign=="+")
         {
             result = val1 + val2;
             txtbox.Text = result.ToString();

         }
         else if(sign=="-")
         {
             result = val1 - val2;
             txtbox.Text = result.ToString();
         }
         else if(sign=="X")
         {
             result = val1 * val2;
             txtbox.Text = result.ToString();
         }
         else if(sign=="/")
         {
             result = val1 / val2;
             txtbox.Text = result.ToString();

         }

    }


    private void cmdclear_Click(object sender, EventArgs e)
    {
        //Clears text
        txtbox.Text = "";

        val1 = 0;

        val2 = 0;

        sign = "";

    }

    private void cmdplus_Click(object sender, EventArgs e)
    {
        sign = "+";
        val1 = double.Parse(txtbox.Text);
        txtbox.Text = "";

    }

    private void cmdsubtract_Click(object sender, EventArgs e)
    {
        sign = "-";
        val1 = double.Parse(txtbox.Text);
        txtbox.Text = "";
    }

    private void cmdmultiply_Click(object sender, EventArgs e)
    {
        sign = "X";
        val1 = double.Parse(txtbox.Text);
        txtbox.Text = "";
    }

    private void cmddivide_Click(object sender, EventArgs e)
    {
        sign = "/";
        val1 = double.Parse(txtbox.Text);
        txtbox.Text = "";
    }

    private void cmdsqrt_Click(object sender, EventArgs e)
    {
        double v;
        v = double.Parse(txtbox.Text);
        txtbox.Text = Math.Sqrt(v).ToString();
    }

    private void cmdsquare_Click(object sender, EventArgs e)
    {
        double v;
        v = double.Parse(txtbox.Text);
        txtbox.Text = Math.Pow(v,2).ToString();
    }

    private void cmdsin_Click(object sender, EventArgs e)
    {
        double v;
        v = double.Parse(txtbox.Text);
        txtbox.Text = Math.Sin(v).ToString();
    }

    private void cmdcos_Click(object sender, EventArgs e)
    {
        double v;
        v = double.Parse(txtbox.Text);
        txtbox.Text = Math.Cos(v).ToString();
    }

    private void cmdtan_Click(object sender, EventArgs e)
    {
        double v;
        v = double.Parse(txtbox.Text);
        txtbox.Text = Math.Tan(v).ToString();
    }
    private void Form1_Load(object sender, EventArgs e)
    {

    }
     private void txtbox_TextChanged(object sender, EventArgs e)

    {

    }
     private void txtbox_KeyPress(object sender, KeyPressEventArgs e)

    {

        int keycode;

        keycode = e.KeyChar;

        //accept only number from key 0 to key 9, key back, and key dot

        if (keycode >= 48 && keycode <= 57 || keycode==8 || keycode==32 || keycode==46)

        {

            //key dot allowed only one time

            if (keycode == 46) ++trackkeypoint;

            if (trackkeypoint > 1) { e.Handled = true; --trackkeypoint; }

        }

        else e.Handled = true;

    }



    private void txtbox_KeyDown(object sender, KeyEventArgs e)

    {





           }

    }
}

我得到这个错误:

截图1

我尝试将其更改为 CWindowsGUI,但没有成功,或者删除了有问题的位,或者许多其他外行修复。它还显示在设计器窗口中:

截图2

CWindowsGUI.Designer.cs 上的命名空间与实际代码相同

4

2 回答 2

3

查看您提供的课程,我认为您将其重命名Form1Calculator

所以试试:

Application.Run(new Calculator());

编辑:

CWindowsGUI.cs

  public partial class Calculator : Form
  {
     public Calculator() // Not public void Calculator()
     {
       InitializeComponent();
     }

CWindowsGUI.Designer.cs

  public partial class Calculator 
于 2013-08-27T03:09:58.973 回答
0

首先你需要修复一些错误

 private void Form1_Load(object sender, EventArgs e)
    {

    }

您没有任何名为 Form1 的表单,似乎当您创建应用程序时,它为您创建了一个名为 Form1 的表单,您只是从解决方案资源管理器中重命名了它。删除此加载事件。

 public void Calculator()

    {
        InitializeComponent();
    }

它是您表单的构造函数吗? CWindowsGUI 构造函数名称应该与表单名称相同,请更正它。

你想先运行 CWindowsGUI 表单吗???

Application.Run(); 

method defines that which form you wants to set as startup that's all

然后试试这个:

Application.Run(new CWindowsGUI());

代替

Application.Run(new Calculator());

我的建议是删除此表单(CWindowsGUI)并创建一个新表单,然后该页面上的代码也不要忘记更改表单

Application.Run(new CWindowsGUI());
于 2013-08-27T03:46:23.407 回答