0

3 つのボタン (button1、button2、button3) があり、それぞれ 1、2、3 を表示しています。

今私がやりたいことは、プログラムを「ロック解除」するための秘密の組み合わせ、つまり「13221」を持つことです

しかし、ユーザーがボタンを押したかどうかを知る方法と、注文を確認する方法がわかりません。

私の現在のロジックは次のとおりです。

private void Form1_Load(object sender, EventArgs e)
{
  if(button1.KeyPress=true && button3.KeyPress=true && button2.KeyPress=true && button2.KeyPress=true && button1.KeyPress=true)
  {
    label1.Visible = true;
    label2.Visible = true;
  }
}

明らかにうまくいかない..誰でも私を助けることができますか? :/

4

5 に答える 5

1

まず、イアンが言ったようにコードを修正する必要があります

に修正します

if(button1.KeyPress==true.... 

また

if(button1.KeyPress.Equals(true)...  //recommended in C#

次に、
1)keypreview --> trueフォームプロパティに設定します。
2)form_keypressイベントのボタン機能を実装します。
3) テキストボックスを取得し、プロパティを設定して透明にします
4)text_changedテキストボックスにイベント関数を実装して、組み合わせを確認します。

これはうまくいかないかもしれませんが、この概念があなたに何らかのアイデアを与えてくれることを願っています.

于 2012-10-16T16:49:56.563 に答える
1

StringBuilder オブジェクトを使用して、各キー値を格納します。したがって、各ボタンのクリック イベントでは、押されたボタンに応じて「1」、「2」、または「3」を追加し、現在のシーケンスを確認します。

StringBuilder _code = new StringBuilder();

void button1_Click(object sender, EventArgs e)
{
    _code.Append('1');

  CheckCode();
}

// ... similarly implement other button click events


void CheckCode()
{
    if (_code.ToString().Contains("13221"))
    {
        MessageBox.Show("ACCESS GRANTED");
    }
}
于 2012-10-16T16:30:07.147 に答える
1

オブジェクト送信者ボタンは、ボタンの名前を確認できるボタンに入力して、単一の if ステートメントを使用できます。

Button buttonPressed = (button)Sender;

オブジェクトからボタンへの型変換を行うことに関するMSDNの情報があるはずです。(私は仕事中です。または、私のコードが 100% コピー ペーストに値するものであることを確認します。これを行った人が私の投稿を自由に編集したい場合)。

于 2012-10-16T16:29:00.780 に答える
1

着信ボタンを押すたびに簡単に登録できます。通常のボタンの場合は、ButtnClick イベントを使用します。

値をリストに格納します。それは単純な文字列である可能性があります。リストがあなたの秘密のコードと等しいかどうか毎回確認してください。

試行をリセットする方法とタイミングについては、まだ仕様が必要だと思います。

事実上、ステートマシンを作成しています。

于 2012-10-16T16:20:41.937 に答える
1

私が飛び出す最大のことは==、if ステートメントで使用して等価性をチェックする必要があるということです。1 つ=は、これらのプロパティを true に割り当てています。

そうは言っても、私がこれに対してとるアプローチは次のとおりです。

- 各ボタンに一意の ID を付与する

-ボタンをクリックするたびに、IDをリストに保存します。

-クリックするたびに、またはユーザーが送信ボタンを押したときに、事前定義された組み合わせに対してリストを確認します。

于 2012-10-16T16:22:35.210 に答える