0

私はC#を数か月しか使用していません。いくつかの小さなプログラムを作成しましたが、今はもう少し大きなことをしたいと思っています。問題は、実際にコースやトレーニングを行ったことがないことです。そこにいて、通り抜けました。私はこのサイトや他のサイト、グーグル、ビングなどで多くの検索を行ってきましたが、それらはすべて私に何か違うものを指し示しています(またはそう信じています)ので、ここに私の質問があります

私は、3つのエントリ、1つのテキストボックス、2つのラベルを持つWindows Form Aplication 1コンボボックスを持っています(これはテキストボックスである可能性がありますが、WFAのほうが見栄えが良いです)

実行中のアプリケーションで探しているのは、コンボボックスオプションの1つを選択してから、テキストボックスで値を入力することです。たとえば、コンボボックスを「オプションA」テキストボックスから「40」に変更し、ラベルを所定のテキストに変更します。したがって、combobox = optionA で textbox = 40 の場合、ラベルの変更はそれ以外の場合は明確になります。

私は試した

if (comboBox1.SelectedItem.ToString() == "optionA") && (textBox1.Text = "40")
            {
                label3.Text = "40A";
                label4.Text = "A40";
            }

しかし、あらゆる種類のエラーが発生します。いつの日かレッスンを受けることをお約束します。さらに情報が必要な場合は、お問い合わせください。お届けできるよう努めます。

4

2 に答える 2

0

あなたのif発言には2つの問題があります:

  1. 条件式全体を括弧で囲む必要があります。

  2. textBox1.Text内容を比較するのではなく、値「40」を に割り当てています。

あなたは次のように動作するはずです:

if (comboBox1.SelectedItem.ToString() == "optionA" && textBox1.Text == "40")
{
    label3.Text = "40A";
    label4.Text = "A40";
}
于 2013-10-04T17:31:38.780 に答える
0

これは C# の正しい構文ではありません。あなたが書いたifステートメントは、式の前半にのみ適用されます.後半は、真/偽の値を期待するものの一部ではないため、コンパイラを混乱させます。式全体を囲む括弧の追加セットが必要なため、両方の部分が if ステートメントの一部として解釈されます。また、「and」の後の式で double-equals を使用する必要があります。single-equals を使用すると、「textBox1.Text を 40 に設定する」ことを意味し、これは常に true になります (望ましくない副作用があります)。このような:

if ((comboBox1.SelectedItem.ToString() == "optionA") && (textBox1.Text == "40"))
{
    [your code you want to be conditionally run]
}
于 2013-10-04T17:32:47.847 に答える