新手剛接觸C# 寫了第一個程式計算機碰上小問題
本帖最後由 cpu66300 於 2018-10-7 09:06 編輯以下是我的問題:
按了一下 小數點 0就不見了直接秀出 "." 如果要打 0.5時候 該怎麼寫
還有 該怎麼寫 小數點 出現一次而已呢?
新手剛接觸C# 寫的第一個程式 碰上的問題 請高手幫幫忙 感謝{:8_318:}{:8_318:}{:8_318:}
以下 附上我的程式碼:
public partial class Form1 : Form
{
Double value = 0;
String op = "";
bool op_pressed = false;
public Form1()
{
InitializeComponent();
}
private void button_Click(object sender, EventArgs e) <<<< 0~9 OR "."的按鈕
{
if ((result.Text == "0")||(op_pressed))
result.Clear();
op_pressed = false;
Button b = (Button)sender;
result.Text = result.Text +b.Text;
//<<<< 這邊我有試著打 if (result.Text.IndexOf(".") < 0) ;
// {
result.Text = result.Text+"."; 結果 更慘 多一個 "."
}
}
private void button11_Click(object sender, EventArgs e) <<<<CE鈕
{
result.Text = "0";
}
private void op_click(object sender, EventArgs e) <<<<+ - * / 鈕
{
Button b = (Button)sender;
op = b.Text;
value = Double.Parse(result.Text);
op_pressed = true;
}
private void button13_Click(object sender, EventArgs e)
{
switch(op)
{
case "+":
result.Text = (value + Double.Parse(result.Text)).ToString();
break;
case "-":
result.Text = (value - Double.Parse(result.Text)).ToString();
break;
case "*":
result.Text = (value * Double.Parse(result.Text)).ToString();
break;
case "/":
result.Text = (value / Double.Parse(result.Text)).ToString();
break;
default:
break;
}
op_pressed = false;
}
private void button10_Click(object sender, EventArgs e) <<<<C鈕
{
result.Text = "0";
value = 0;
}
}
}
你 0 按鈕的 click function 是 button_Click 嗎?
我建議你把按鈕的名稱都自訂好,你如果是預設的編號的話其他人怎麼會知道你的 button11 是哪一顆按鈕呢?這樣其他人還要去多花時間去猜測你的哪個按鈕是哪個名稱。 xmax 發表於 2018-10-7 00:16 static/image/common/back.gif
你 0 按鈕的 click function 是 button_Click 嗎?
我建議你把按鈕的名稱都自訂好,你如果是預設的編號的話 ...
式的 我把 0~9 都用 button_Click
+ - * / 都用 button13_Click OR op_click
button10_Click 是 C 鈕
button11_Click 是 CE 鈕
謝謝大大 提醒 小弟 記下了 3q
針對你說的小數點的問題,我的想法是把小數點按鈕的 click function 給另外寫。
這是我小數點按鈕的click事件private void Dot_btm_Click(object sender, EventArgs e)
{
// If Result is 0 or op_pressed is true,
// then clear display.
if ((Result_txt.Text == string.Empty) || op_pressed)
Result_txt.Text = "0.";
op_pressed = false;
if (Result_txt.Text.IndexOf(".") == -1) {
// If Result_txt hasn't "." then
Result_txt.Text += ".";
}
} xmax 發表於 2018-10-7 10:59 static/image/common/back.gif
針對你說的小數點的問題,我的想法是把小數點按鈕的 click function 給另外寫。
這是我小數點按鈕的click ...
感謝大大的ˊ交的寫法ˋ 但是我又稍微修改了 一點點 因為 我把 "." 的按鈕 改回 原本的 Click 的名稱而已
private void button17_Click(object sender, EventArgs e)
{
if ((result.Text == String.Empty) || op_pressed)
result.Text = "0";
op_pressed = false;
if(result.Text.IndexOf(".") ==-1)
result.Text += ".";
}
這樣 就成功了 {:8_290:}
頁:
[1]