2012-12-02 4 views
1

나는 프로그램을 만들고 있는데, 나는 정말로 빨리 dev 창을 만들어서 comands를 타이핑 할 수있다. 나는 내가 말하려고하는 의사 코드를 시도 할 것이다.C# 디버깅을위한 동적 콘솔이 가능합니까?

Console 
User Types "Add player" 
Takes the string and searches a case statement which says 
Carry out these action on Form1 

내 C# Form 프로그램을 조작 할 수있는 콘솔을 만들 수 있습니까?

내가 필요한 유일한 대답은 "예, 콘솔을 생성하려면 ........"입니다. 나머지는 나 자신을 위해 일할 수 있습니다. 또는 "아니요"

감사합니다.

+0

Project + 속성, 응용 프로그램 탭. 출력 유형을 "콘솔 응용 프로그램"으로 변경하십시오. 모든 것이 정상적으로 작동하고 무료 콘솔이 제공됩니다. Console.ReadLine()을 호출하기 위해 스레드를 돌리고 싶습니다. –

답변

1

예, 가능합니다. 콘솔 응용 프로그램을 만들고 필요한 참조 및 양식을 추가 한 다음 시작 부분에 기본 양식을 표시하십시오.

Program.cs :

static void Main(string[ ] args) { 
    var f = new Form1(); 

    var t = new Thread(delegate(object form) { 
     System.Windows.Forms.Application.Run(form as Form1); 
    }); 

    t.Start(f); 

    while (true) 
     f.SetText(Console.ReadLine()); 

    t.Join(); 
} 

에서 Form1.cs :

public partial class Form1 : Form { 
    public Form1() { 
     InitializeComponent(); 
     CheckForIllegalCrossThreadCalls = false; // Note!! 
    } 

    public void SetText(string text) { 
     label1.Text = text; 
    } 
} 

모르겠어요이 코드를 사용하면 폼에 라벨의 내용을 변경할 수 있습니다 CheckForIllegalCrossThreadCalls을 false로 설정하는 것의 의미.

+0

시간 내 주셔서 대단히 감사합니다. :) – Ralt

+0

@ user1867488 환영합니다 :) – BlackBear

+0

매우 중요한 UI 스레드 규칙을 두 개 상속합니다. 이것은 OP를 많은 문제로 만들 것입니다. –