2012-12-10 2 views
-1

내가 원하는 것은 버튼 클릭 이벤트의 두 변수를 동일한 파일의 다른 클래스로 전달하는 것입니다. 내가 Settings.width 및 SetWindowSize에서 Settings.height을 원하는다른 파일의 변수를 어떻게 참조합니까?

namespace ShovelShovel 

class SetWindowSize 
{ 
    public static void SaveData(string width, string height) 
    {   
     using (BinaryWriter binaryWriter = new BinaryWriter(File.Open("file.dat", FileMode.Create))) 
     { 
       binaryWriter.Write(width, height); 
     } 
    } 
} 
} 

Settings.cs (윈도우 양식 파일)

namespace ShovelShovel 

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

    public void button1_Click(object sender, EventArgs e) 
    { 
     SetWindowSize.SaveData(textBoxWidth.Text, textBoxHeight.Text); 
    } 
} 
} 
} 

SetWindowSize.cs (클래스 파일) :

여기 내 코드입니다. cs를 입력하여 textBoxWidthtextBoxHeight에서 텍스트를 가져옵니다.

는 양식의 기능을 끊을 때부터, 무엇에

public void button1_Click(object sender, EventArgs e) 

을 변경할 수 없습니다, 그래서 어떻게 해야할지 모르겠어요.

+1

너비와 높이를 매개 변수로 사용하는 setWidth 함수를 정의하십시오. 그런 다음 클릭 이벤트 핸들러에서 호출합니까? – atoMerz

+0

에는 설정 클래스의 너비와 높이에 대한 공용 정적 변수가 있습니까? Cann에서 write 메소드를 사용하면 게시 한 코드로 문제를 해결할 수 있습니다. 그러나 클래스 이름과 메서드는 오해의 소지가 있습니다. SetWindowSize 클래스와 write 메서드는 일종의 로깅 또는 파일에 대한 쓰기 기능을 구현하는 것 같습니다. 이상적으로 당신의 쓰기는 입력 매개 변수로 쓰여질 문자열을 취해야한다. – ryadavilli

+0

@AtoMerZ 나는 그것을하지 않을 것이다. 나는 시도했다. 그러나 'ShovelShovel.Settings'에는 'height'에 대한 정의가 포함되어 있지 않다. 너비와 동일합니다. – Fiona

답변

2

버튼 클릭 이벤트 처리기의 서명을 변경 할 필요가 없다

public void button1_Click(object sender, EventArgs e) 
{ 
    SetWindowSize.SaveData(textBoxWidth.Text, textBoxHeight.Text); 
} 
+0

도와 주셔서 감사합니다. 하지만, "메소드에 대한 과부하가 없습니다. 'Write는 2 개의 인자를 취합니다." 내 원래 질문을 업데이트 된 코드로 업데이트했습니다. 나는 항상 세부 사항 만보고 큰 그림이 아닌이 일을 했어. 그래서 나는 그들이해야할 일보다 더 열심히 일하는 경향이있다 ... – Fiona

+0

@Fiona 내 업데이트 된 코드보기 – fenix2222

+0

@Fiona "답변으로 표시하십시오" 작동한다면. 나는 당신의 원래 질문에 대답했다고 생각합니다. – fenix2222

0

을 클릭 클래스를 SetWindowSize 및

public static class SetWindowSize 
{ 
    public static void SaveData(string width, string height) 
    { 
     File.WriteAllText("file.dat", string.Format("height: {0}, width: {1}.", height, width)); 
    } 
}  

그리고 단추를 Button1_Click

에서 호출하는 새로운 방법을 추가하고, 다른 클래스는 그 함수를 어쨌든 호출해서는 안됩니다. 버튼 클릭 이벤트 핸들러는 SetWindowSize의 인스턴스를 만들고 Write을 호출해야합니다. Write에 추가 매개 변수를 추가하여 단추 클릭 핸들러에서 두 문자열을 전달할 수 있습니다.

관련 문제