2016-07-03 6 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とする。
私はプログラムを実行するときに、私は&のためにボタンを押してください。次に、ボタンbをbにします(今はフォームabで出力します)が最初にaを表示し、次にボタンbを押すとaを消してbを表示します。
キーボードを作るために、このようなボタンを増やしたいと思います。 基本的に、ボタンに保存されている文字を順番に印刷したいが、最初のものを消去してから次のものを印刷する。特定の値を入力するためのボタンの作成方法は?

+0

私たちにコードを表示してください。また、どのようなタイプのアプリケーションを開発していますか? WPF、UWP、Windows Phone?私の推測では、文字 'b'を出力文字列に連結していないということです。 – dimlucas

+0

何ですか?つまり、テキストを設定した場合です。あなたは少なくともテキストを管理する必要があります(追加など)... – icbytes

+0

Sir dimlucas!私はVisual Studio C#(Windowsフォームアプリケーション)に取り組んでいます イメージまたはコードをアップロードしようとしています –

答えて

2

オンスクリーンキーボードを作成する最も簡単な方法は、バックスペースなどの特殊キーを除いて、ボタンのテキストを使用して入力し、明確なetc`することです。 すべてのテキストボタンがイベントをクリックして、その方法は、単一の方法で扱うことができます:あなたは(別名APPEND)を連結する必要があるコードに文字を掲示する前に、私はコメントであなたに言ったよう

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つの異なるテキスト1つはcapslock on)。もちろん、私が使ったボタンは、そのキーボードで使われるように特別に設計されたユーザーコントロールでした。 –

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'

「」

が必要にどのような任意のテキストは、すでに文字とテキストボックスに書かれたを交換しますdo +=演算子を使用してください:

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

サー!どうもありがとう....... –

関連する問題