2014-03-29 5 views
0

이것이 제가 간과 할 정도로 단순한 것이라고 확신합니다. 그러나 나는 그것을 이해할 수 없습니다. 저는 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 오류를 수신한다. 어떤 도움을 주셔서 감사합니다.

답변

1

컨트롤은 양식 컨트롤과 연결된 .cs 파일에서만 호출 할 수 있습니다.

:이 같은 버튼과 텍스트 상자가 어디에 양식 .cs이 클래스를 호출 할 수 있습니다, 지금

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); 
     } 
    } 
} 

: 당신이 할 수있는 일

이처럼 Calculator 클래스의 매개 변수화 된 생성자를 만드는 것입니다

Calculator calculate = new Calculator(displayValue.Text); 
+0

이것은 정확히 내가 필요한 것입니다. 고맙습니다! – user2774647

0

새 Windows Form 응용 프로그램을 만들 때 디자이너 (단추 및 텍스트 상자를 추가하기 위해 상호 작용할 수있는 디자이너)와 코드 숨김 (.cs 파일)이 있습니다.

이 .cs 파일은 부분 클래스이므로 상호 작용하는 양식에 의해 정의됩니다. (.Designer.cs 파일에서 자세한 내용을 볼 수 있습니다.)

버튼과 텍스트 상자의 이름을 지정하면 부분 클래스의 코드에서 해당 이름을 참조 할 수 있습니다!

formcode

그리고 당신이 컴파일 할 때, 당신의 단추 텍스트가 변경됩니다에 "Hello World!"

희망이 도움이됩니다.

0

이 컨트롤은 폼의 부분 클래스에서 찾을 수 있습니다. 당신은 그것에서 가치를 취할 수 있고 당신의 수술을 할 수 있습니다.

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

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