在開始前先致謝高雄科技大學的陳茂盛老師教導C#程式設計這門藝術。
本次使用的程式編譯器為Microsoft Visual Studio
那~~讓我們開始吧!!
首先先了解攝氏華氏換算公式:
再來我們在建立一個類別庫(.NET Framework)來讓我們建立一個類別庫。
類別庫程式碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; //以上都是自動生成 namespace TPService { public class TPClass { public double DC { set; get; } public double DF { set; get; } //設定DC與DF接收值 public double CtoF(double _inputc) //建立一個公用(public)的double命名為CtoF(CtoF可自行更改)後()內設定_inputc為double型別 { DF = (_inputc * 9.0 / 5.0) + 32.0;//DF值等於_inputc乘9除5再加32 return DF;//記得 return } public double FtoC(double _inputf) { DC = (_inputf - 32.0) * 5.0 / 9.0; return DC; } //FtoC也是同道理 } }再來在專案中新增一個WindowsFormsApp
之後我們先將WindowsForm設成起始專案
再將我們的類別庫(.NET Framework)參考進來
做完後我們需要2個TextBox、2個Label與4個Button
點選物件後可以利用右下角來更改相關名字或數值下圖是我目前的相關命名,記住命名以利後續的程式撰寫。
雙擊每個物件
自動生成大概是長這樣:
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 WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void BTN1_Click(object sender, EventArgs e) { } private void BTN2_Click(object sender, EventArgs e) { } private void BTN3_Click(object sender, EventArgs e) { } private void BTN4_Click(object sender, EventArgs e) { } private void TB1_TextChanged(object sender, EventArgs e) { } } }首先先加入我們的類別庫
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; using TPService;//使用TPService(就是您的類別庫)再來我們先編輯BTN1的部分,程式碼如下:
private void BTN1_Click(object sender, EventArgs e) { TPClass changetp = new TPClass(); //使用TPClass並命名為changetp if (string.IsNullOrEmpty(TB2.Text)) //如果TB2是不存在或是不允許的值就執行{}中的行為 //這部分是為了怕有人打錯數值或沒輸入就轉換而做的防呆機制 { MessageBox.Show("請輸入數值"); return; } else //不然 { changetp.DC = changetp.FtoC(double.Parse(TB2.Text));//changetp中的DC等於changetp中的自訂式FtoC(接收TB2的值並使用double資料型態) TB1.Text = changetp.DC.ToString("##.00");//TB1顯示changetp的DC的值格式取小數後2位 TB2.Text = double.Parse(TB2.Text).ToString("##.00");//TB2顯示原TB2的值,格式也取小數後2位 } }BTN2也是一樣作法歐,稍微改變下而已
private void BTN2_Click(object sender, EventArgs e) { TPClass changetp = new TPClass(); if (string.IsNullOrEmpty(TB1.Text)) { MessageBox.Show("請輸入數值"); return; } else { changetp.DF = changetp.CtoF(double.Parse(TB1.Text)); TB2.Text = changetp.DF.ToString("##.00"); TB1.Text = double.Parse(TB1.Text).ToString("##.00"); } }再來是BTN3
這部分是清理TB1與TB2的值,我們可以運用Clear()的功能。
private void BTN3_Click(object sender, EventArgs e) { TB1.Clear(); TB2.Clear(); }最後是離開的按鈕設定
我們要做到這個效果
private void BTN4_Click(object sender, EventArgs e) { if(MessageBox.Show("確定離開?","TPService",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)==DialogResult.OK) Application.Exit(); }基本上相關對照如下:
這樣就完成了。
下方整理了完整的程式碼:
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; using TPService; /* 代號參考表: BTN2=轉換紐 BTN3=清除資料紐 BTN4=EXIT紐 TB1=攝氏TEXTBOX輸入欄 TB2=華氏TEXTBOX輸入欄 */ namespace WindowsFormsApp2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void BTN2_Click(object sender, EventArgs e) { { TPClass changetp = new TPClass(); if (string.IsNullOrEmpty(TB1.Text) && string.IsNullOrEmpty(TB2.Text)) { MessageBox.Show("請輸入數值"); return; } else if (string.IsNullOrEmpty(TB2.Text)) { changetp.DC = changetp.CtoF(double.Parse(TB1.Text)); TB2.Text = changetp.DF.ToString("##.00"); TB1.Text = double.Parse(TB1.Text).ToString("##.00"); } else { changetp.DF = changetp.FtoC(double.Parse(TB2.Text)); TB1.Text = changetp.DC.ToString("##.00"); TB2.Text = double.Parse(TB2.Text).ToString("##.00"); } } } private void BTN3_Click(object sender, EventArgs e) { TB1.Clear(); TB2.Clear(); } private void BTN4_Click(object sender, EventArgs e) { if(MessageBox.Show("確定離開?","TPService",MessageBoxButtons.OKCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1)==DialogResult.OK) Application.Exit(); } } }
By:Ender
Day:2018/10/11
Time:06:16am
Revision :REV 1.33
沒有留言:
張貼留言