2016-07-03 5 views
-2
public partial class Form1 : Form 
{ 
    public static string a = "a"; public static string b = "b"; public static string c = "c"; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     textBox1.Text = a; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     textBox1.Text = b; 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     textBox1.Text = c; 
    } 

    private void button4_Click(object sender, EventArgs e) 
    { 
     a = null; 
     b = null; 
     c = null; 
    } 
} 

채팅 용으로 간단한 키보드를 만들고 싶습니다.
3 개의 버튼 만있는 작은 샘플 프로그램으로 시작했습니다. 버튼 a, 버튼 b, 버튼 c는 각각 a, b, c입니다.
프로그램을 실행하면 &에 대해 버튼 a를 누른 다음 b에 대해 b 버튼을 누릅니다 (이제는 ab 형식으로 출력하고 싶습니다). 먼저 a를 표시 한 다음 버튼을 누르면 버튼 b가 지워지고 a가 표시됩니다. b.
키보드를 만들기 위해 더 많은 버튼을 만들고 싶습니다. 기본적으로 버튼에 저장된 문자를 순차적으로 인쇄하려고하지만 첫 번째 문자는 지우고 다음 문자는 인쇄합니다.특정 값을 입력하는 버튼을 만드는 방법은 무엇입니까?

+0

코드를 표시하십시오. 또한 어떤 유형의 응용 프로그램을 개발하고 있습니까? WPF, UWP, Windows Phone? 내 생각 엔 출력 문자열에 문자 'b'를 연결하지 않는다는 것입니다. – dimlucas

+0

뭐라고 요? 즉, 텍스트를 설정하는 경우입니다. 적어도 텍스트 (추가 등)를 관리 할 필요가 있습니다. – icbytes

+0

경유 님! Visual Studio C# (Windows Form 응용 프로그램)에서 작업 중입니다. 이미지 또는 코드를 업로드하려고합니다. –

답변

2

온 스크린 키보드를 만드는 가장 쉬운 방법은, 분명 etc`을, 백 스페이스와 같은 특수 키를 제외하고, 버튼의 텍스트를 사용하여 입력하는 것입니다. 당신은 당신이 연결할 필요가있는 코드를 게시하기 전에 내가 코멘트에 말했듯

private void KeyButton_Click(object sender, EventArgs e) 
{ 
    textBox1.Text += ((Button)sender).Text; 
} 

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

private void BackspaceButton_Click(object sender, EventArgs e) 
{ 
    textBox1.Text = textBox1.Text.SubString(0, textBox1.Text.Length-1); 
} 
+0

이 사람이 버튼 수정자를 만든 경우이 버튼이 작동하지 않음 –

+0

@CallumLinington 버튼 수정자가 무엇을 의미하는지 확신 할 수 없지만이 정확한 방법을 사용하여 온 스크린 키보드를 만들었는데 각 버튼에는 2 가지 다른 텍스트가 있습니다 (하나는 capslock 끄기 및 capslock 켜기). 물론, 내가 사용한 버튼은 키보드에서 사용하도록 특별히 고안된 사용자 컨트롤이었습니다. –

1

연산자가 =이므로이 값이 지워집니다. 또한 버튼의 Text 호텔에서 텍스트 값을 얻을 수 있습니다 +=

textBox1.Text += c; 
textBox1.Text = textBox1.Text + c; 

를 사용해보십시오. 각 단추에 대해 하나의 Button.Click 이벤트 처리기 만 있습니다.

private void button_Click(object sender, EventArgs e) 
{ 
    var button = sender as Button; 
    textBox1.Text = textBox1 + button.Text; 
} 
0

가 (일명 를 추가)에있는 문자 : 모든 텍스트 버튼을 클릭 이벤트를 그런 식으로 하나의 방법으로 처리 할 수 ​​있습니다 텍스트 상자. 당신이 textBox1라는 이름의 텍스트 상자에이 일을하는 경우

:

textBox1.Text = 'a'

'A'

는 당신이 필요 어떤 텍스트가 이미 문자 텍스트 상자에 작성을 대체합니다 do += 연산자를 사용하십시오.

textBox1.Text += a; 
textBox1.Text = b; 
textBox1.Text = c; 
+0

선생님! 매우 감사합니다....... –

관련 문제