在当前上下文中不存在控制

时间:2014-03-29 04:14:33

标签: c#

我确信这很简单,我只是在忽视,但我无法理解。我是C#的新手,我正在尝试创建一个计算器应用程序。我已经用我的所有按钮/文本框创建了我的表单。现在我正在创建一个新类来处理我的所有方法和诸如此类的东西。我的问题是,每当我尝试在第二个类中引用表单上的控件时,我都会得到“当前上下文中不存在”错误。我怎么解决这个问题?

一个例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public class Calculator
    {
        decimal currentValue = Decimal.Parse(displayValue.text);

    }
}

displayValue收到错误。感谢您的任何帮助。

3 个答案:

答案 0 :(得分:1)

只能从与表单控件链接的.cs文件中调用控件。

您可以做的是创建Calculator类的参数化构造函数,如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public class Calculator
    {
        public Calculator(string displayValue)
        {
            decimal currentValue = Decimal.Parse(displayValue);
        }
    }
}

现在,您可以使用.cs形式调用此类,其中您有按钮和文本框,如下所示:

Calculator calculate = new Calculator(displayValue.Text);

答案 1 :(得分:0)

当您创建新的Windows窗体应用程序时,有一个设计器(您可以与之交互以添加按钮和文本框)和代码隐藏(.cs文件)。

此.cs文件是一个部分类,这意味着它也是由您正在与之交互的表单定义的。 (您可以在.Designer.cs文件中查看详细信息)

命名按钮和文本框后,您可以在部分类的代码中引用它们的名称!

form code

当你编译它时,你的按钮文本将变为“Hello World!”

希望这有帮助。

答案 2 :(得分:0)

您将在表单的部分类中找到此控件。您可以从中获取值并进行操作

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

    private void Form1_Load(object sender, EventArgs e)
    {
        string s = textBox1.Text;
    }
  }