2017-08-27 1 views
-1

1つのラベルと4つのチェックボックスがあります。私がしたいのは、チェックボックスが選択されている場合です。チェックボックスがオフになっているかどうかに応じて、テキストボックス内で価格を増減させます。私はそれをどうやってできるのか迷っています。 phScreenRepair, virusRemoval, hardwareRepInstall, softwareInstall マイコード:チェックボックスが選択されている場合のテキストボックスの値の変更方法C#winforms

 public float? MultipleServiceAdder() 
    { 
     if (phScreenRepair.Checked) 
     { 
      return 20.00f; 
     } 
     if (virusRemoval.Checked) 
     { 
      return 10.00f; 
     } 
     if (hardwareRepInstall.Checked) 
     { 
      return 10.00f; 
     } 
     if (softwareInstall.Checked) 
     { 
      return 5.00f; 
     } 
     textBlock_Price.Text = "$0.00"; 
     return 0f; 
    } 
+0

あなたがチェックボックスの[CheckedChanged](https://msdn.microsoft.com/en-us/library/system.windows.forms.checkbox.checkedchanged(V = vs.110).aspxの)イベントを持っています。怠け者ではなく、Googleを使用してください。 –

+0

クリックイベントがうまくいくと思ったので、クリック、シフトクリックなどのときに発生する可能性のある複数の事柄があるので、CheckStateChangedが最適です。@ bruno.almeida –

答えて

0

あなたはcheckBox.CheckStateChangedイベントをサブスクライブし、そこから自分のラベルや、テキストボックス(TextBox)コントロールの値を変更することができます

ラベルがTextBlock_Price

チェックボックスは以下の通りです。 checkBox.Clickイベントを購読することもできますが、それはクリックごとにトリガーされますが、シフトクリックのようないくつかのクリックがあり、イベントを開始することはできません。

例:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApp1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      checkBox1.CheckStateChanged += CheckBox1_CheckStateChanged; 
     } 

     private void CheckBox1_CheckStateChanged(object sender, EventArgs e) 
     { 
      MessageBox.Show("Input Changed!"); 
     } 
    } 
} 
0
float x=0.00f; 
if (phScreenRepair.Checked) x += 20.00f; 
if (virusRemoval.Checked) x += 10.00f; 
if (hardwareRepInstall.Checked) x += 10.00f; 
if (softwareInstall.Checked) x += 5.00f; 

textBlock_Price.Text = x.toString(); 
+0

チェックを一度実行するコードを探していましたボックスがクリックされました。メソッドがタイマなどの行に沿って呼び出されると、コードは実行されません。 –

+0

@SeanMitchell彼はcheckbox_oncheckedChangeイベントのようにどこでもこれらの行を使用できます! – PurTahan

+0

これは事実ですが、彼は実際にチェックボックスチェック状態変更イベントをすべて購読してもらうことができますが、すべて出力を変更するのと同じ方法を実行します。 –

0

はこれを試してみてください、私はそれをテストしていません。 Pls各チェックボックスのcheckedchangedイベントでこのメソッドを呼び出します。

float max = 45.0f; //(20+10+10+5) 

public float? MultipleServiceAdder() 
{ 
    float total; 
    total = max; 
    if (!phScreenRepair.Checked) 
    { 
     total = total - 20.00f; 
    } 
    if (!virusRemoval.Checked) 
    { 
     total = total - 10.00f; 
    } 
    if (!hardwareRepInstall.Checked) 
    { 
     total = total - 10.00f; 
    } 
    if (!softwareInstall.Checked) 
    { 
     total = total - 5.00f; 
    } 

    textBlock_Price.Text = total.ToString(); 
    return total; 
    } 
関連する問題