第九章 日期、捲軸 上下按鈕控制項.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

計算機程式及實習 期末報告之口頭報告PPT製作 題目: 記憶遊戲
C#程式設計 第二部分 第5-6章 C# 程式設計 - 南華大學資管系.
計算機程式語言實習課.
多樂一甲 謝佩臻 4A3K0009.
C#程序设计案例教程 第3章 程 序 结 构.
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
第十章 常用控制項二 資訊教育研究室 編著 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。.
第 5 章 流程控制 (一): 條件分支.
第二章 JAVA语言基础.
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
選擇 運算式 邏輯運算 if指令 流程圖基本觀念 程式註解 巢狀if指令 switch指令.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
Visual C++ introduction
C++Primer 3rd edition 中文版 Chap 5
第七章 MSP430時脈計時器A模組.
Controls.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
網頁切換移轉 JS vs. ASP.NET.
Visual Basic 物件導向程式設計簡介.
網頁切換移轉 JS vs. ASP.NET.
第一單元 建立java 程式.
標籤、按鈕、工具列、狀態列 (Labels, Buttons, Tool Strips, and Status Strips)
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
PowerPoint 2019/4/9.
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
打地鼠(陣列版).
CH1 我的第一個App與變數宣告.
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
期末考.
雙按button1,2,3,4 Method 方法/動作 textBox2.Text textBox1 textBox3.Text 轉為數字 c是數字 int c = int.Parse(textBox1.Text) + …; textBox3.Text = c.ToString();
Controls.
第二章 Java基本语法 讲师:复凡.
GridView操作 (II).
程式的時間與空間 Time and Space in Programming
Flash 8:開口中 從Y:\ 複製『開口中.fla』到 D:\ 更改名稱為:s3x99 (你的班號) 雙按開啟檔案 2019年5月7日
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
订单汇总单功能详解 -芜花.
函數應用(二)與自定函數.
亂數 隨機產生亂數 Random類別支援的方法: Next多載方法 Next :傳回亂數。
目标 流程控制 字符串处理 C# 的类和对象 C# 访问修饰符 C# 构造函数和析构函数.
#include <iostream.h>
第二章 Java基本语法 讲师:复凡.
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
反覆迴圈、陣列、副程式 靜宜大學資管系 楊子青
第1章 数据结构基础概论 本章主要介绍以下内容 数据结构研究的主要内容 数据结构中涉及的基本概念 算法的概念、描述方法以及评价标准.
Quiz1 繳交期限: 9/28(四).
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
Cloud Training Material- 事件 Sherman Wang
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
適用於多選一 可減少if 與 else配對混淆的錯誤.
第2章 Java语言基础.
MenuStrip by Szeto CY Visual C# 2008.
多重條件選擇敘述
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Array(陣列) Anny
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
第二章 Java基础语法 北京传智播客教育
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

第九章 日期、捲軸 上下按鈕控制項

9-1 MonthCalendar 月曆控制項 可快速建立月曆介面,用來查詢日期和選取 日期範圍。

二. 如何在月曆控制項中新增日期

三. 月曆控制項常用方法

四. 月曆控制項的常用事件 DateChanged 事件 是MonthCalendar控制項的預設事件 當切換或選擇日期時會觸動該事件。 DateSelected事件 當選擇日期時會觸動 此事件。 如點選一個日期:  先觸動 DateChanged 事件。  再觸動 DateSelected 事件。

輸出結果

建立輸出入介面

private void Form1_Load(object sender, EventArgs e) { mcdDate.MinDate = DateTime.Today; // 設可選擇最小日期為今天 mcdDate.MaxSelectionCount = 7; // 設最多可以選擇7天 mcdDate.SelectionStart = DateTime.Today; // 預設選擇日期為今天 } private void mcdDate_DateChanged(object sender, DateRangeEventArgs e) { //根據選擇起始日期的月份來設定背景色 switch (mcdDate.SelectionStart.Month) //使用Month屬性來取得所在的月份 case 3: //3~5月背景設為淺綠色 case 4: case 5: this.BackColor = Color.LightGreen; break; case 6: //6~8月背景設為淺藍色 case 7: case 8: this.BackColor = Color.LightBlue; case 9: //9~11月背景設為橘色 case 10: case 11: this.BackColor = Color.Orange; default: //其餘月份設為白色 this.BackColor = Color.White; private void mcdDate_DateSelected(object sender, DateRangeEventArgs e) { DateTime d_start = mcdDate.SelectionStart; // d_start記錄選擇的起始日期 DateTime d_end = mcdDate.SelectionEnd; // d_end記錄選擇的結束日期 TimeSpan ts = d_end - d_start; // ts為間隔時間 int days = ts.Days + 1; // 將間隔時間轉成天數 int rest;//紀錄租金 switch (days) //根據天數來設定租金 case 1: //1天設定租金為10元 rest = 10; break; case 2: //2~3天設定租金為8元 case 3: rest = 8; default: //其餘天數設定租金為6元 rest = 6; } lblMoney.Text = days.ToString() + " 天的租金為 " + (days * rest).ToString() + "元";

9-2 DateTimePicker日期時間挑選控制項

二. 日期時間挑選控制項的常用事件 ValueChanged 事件 是DataTimePicker 控制項的預設事件

設計輸出入介面

private void Form1_Load(object sender, EventArgs e) { dtpTime.Format = DateTimePickerFormat.Custom; dtpTime.CustomFormat = "yyyy/M/d/HH:mm"; dtpTime.ShowUpDown = true; dtpTime.MaxDate = DateTime.Now; lblMsg.Text = "請輸入入場時間後按計算鈕"; } private void btnOK_Click(object sender, EventArgs e) TimeSpan t_span = DateTime.Now - dtpTime.Value; double t_min = t_span.TotalMinutes; //起訖時間的總分鐘數 double hours = t_span.TotalHours; //起訖時間的總小時數 int mins = t_span.Minutes; //分鐘數 int total = 0; //設停車費為0元 if (t_min > 15) total = (int)hours * 20; //每小時20元 if (mins >= 1 && mins <= 30) //1~30分收費10元 total += 10; else if (mins > 30) //31~59分收費20元 total += 20; lblMsg.Text = "共停 " + (int)hours + " 小時 " + mins + " 分 " + "停車費" + total + "元";

9-3 ScrollBar 捲軸控制項 有水平捲軸項和垂直捲軸控制項兩種。 捲軸控制項提供直覺式輸入一定範圍整數值介面 拖曳捲動鈕可改變數值避免輸入錯誤或超出範圍。

一. 捲軸控制項的常用屬性

二. 捲軸控制項的常用事件 Scroll 事件 預設事件 當滑鼠或鍵盤移動捲動鈕時會觸動此事件。 ValueChanged 事件 ValueChanged 事件執行後立刻觸動 Scroll 事件。

設計輸出入介面

int ok, miss; //紀錄接到和失誤的次數 private void Form1_Load(object sender, EventArgs e) { hsbMove.Maximum = 400; hsbMove.Minimum = 40;//設捲軸的最大和最小值 hsbMove.Value = 220; //預設捲軸的值 picEgg.Image = Image.FromFile("egg.gif"); //載入雞蛋圖檔 picBowl.Image = Image.FromFile("bowl.gif"); //載入碗圖檔 lblMsg.Text = "按開始鈕開始遊戲!"; } private void hsbMove_ValueChanged(object sender, EventArgs e) picBowl.Left = hsbMove.Value - 16; //設碗圖片的位置 private void btnStart_Click(object sender, EventArgs e) tmrFall.Start();//啟動計時器 ok = 0; miss = 0;//預設接到和失誤的次數都為0 btnStart.Enabled = false;//開始鈕不能使用 private void tmrFall_Tick(object sender, EventArgs e) { picEgg.Top += 10; //雞蛋圖片下移10點 if (picEgg.Top + 12 >= picBowl.Top) //若雞蛋圖片超過碗圖片的位置 { //如果雞蛋圖片在碗圖片的位置當中 if (picEgg.Left >= picBowl.Left && picEgg.Left + 16 <= picBowl.Left + 40) { ok++; } //接到次數加1 else { miss++; } //失誤次數加1 lblMsg.Text = "接到:" + ok + "次 失誤:" + miss + "次"; Random ran = new Random(); picEgg.Location = new Point(ran.Next(60, 400), 5);//設蛋的亂數位置 if (ok + miss == 10) //如果接到和失誤的次數總合為10 btnStart.Enabled = true; //開始鈕可以使用 tmrFall.Stop(); //關閉計時器 }

9-4 TrackBar 滑動軸控制項

一. 滑動軸控制項的常用屬性

二. 滑動軸控制項的常用事件 Scroll事件 - 是預設事件 - 當滑鼠在該控制項上拖曳滑動鈕時 會觸動該事件。 - 用程式碼改變 Value 屬性值, 只觸動ValueChanged事件。 2. ValueChanged事件 - 當控制項的 Value 屬性值改變觸動此事件。 - ValueChanged 事件執 行後,會立刻觸動 Scroll事件。

設計輸出入介面

private void Form1_Load(object sender, EventArgs e) { picBug.Image = Image.FromFile("p2.jpg");//載入圖檔 picBug.SizeMode = PictureBoxSizeMode.StretchImage;//圖片隨控制項縮放 tkbW.Value = 100; //設tkbW的初值 tkbH.Value = 110; //設tkbH的初值 } private void tkbW_ValueChanged(object sender, EventArgs e) picBug.Width = tkbW.Value; //圖片寬度等於tkbW的值 lblWH.Text = "W:" + tkbW.Value + " H:" + (210 - tkbH.Value); private void tkbH_ValueChanged(object sender, EventArgs e) picBug.Height = 210 - tkbH.Value; //圖片高度等於210-tkbH的值

9-5 NumericUpDown 數字上下鈕控制項 用來選擇指定範圍的數值。 優點是避免輸入超過範圍的資料。

一. 數字上下鈕控制項常用屬性

二. 數字上下鈕控制項常用方法

三. 數字上下鈕控制項常用事件 預設事件是 ValueChanged 事件 當控制項的 Value 屬性值改變時會觸動 此事件。

設計輸出入介面

int sec; //紀錄倒數的秒數 private void Form1_Load(object sender, EventArgs e) { nudMin.Minimum = 0;nudMin.Maximum = 10;//設定分鐘的範圍 nudMin.Value = 0; //預設分鐘為0 nudSec.Minimum = 0; nudSec.Maximum = 60;//設定秒數的範圍 nudSec.Value = 30; //預設秒數為30 lblSec.Text = ""; timer1.Interval = 1000;//每秒觸發一次 } private void btnStart_Click(object sender, EventArgs e) { //計算倒數秒數 sec = (int)nudMin.Value * 60 + (int)nudSec.Value; btnStart.Enabled = false;//開始鈕不能使用 lblSec.Text = sec.ToString();//顯示剩餘秒數 timer1.Start();//啟動計時器 private void timer1_Tick(object sender, EventArgs e) sec--; //減一秒 if (sec == 0) //若剩餘0秒 timer1.Stop();//關閉計時器 lblSec.Text = "時間到"; btnStart.Enabled = true;//開始鈕可以使用

9-6 DomainUpDown 範圍上下鈕控制項 使用上下按鈕來選擇指定文字清單的一個項目。 範圍上下鈕控制項類似清單控制項 只是使用上下鈕來選擇項目,可避免輸入不合法資料。 當 ReadOnly 屬性值設 true,可允許使用者輸入文字。

一. 範圍上下鈕控制項常用屬性

二. 範圍上下鈕控制項常用方法 此控制項 Items 屬性的方法和清單控制項相同 如:Add、AddRange、Remove 等。 三. 範圍上下鈕控制項常用事件 預設事件是 SelectedItemChanged 事件。 當控制項切換新項目時會觸動該事件, 可將相關程式碼寫在該事件函式中。

設計輸出入介面

private int num1, num2, ans;//題目1、題目2、答案 private void Form1_Load(object sender, EventArgs e) { lblTest.Text = ""; lblMsg.Text = "選擇運算元和位數後按出題鈕開始測驗!"; btnCheck.Enabled = false; //對答按鈕不能使用 dudOpt.Items.Add("加法"); dudOpt.Items.Add("減法"); dudOpt.SelectedIndex = 0; //預設為第一個項目-加法 dudNum.Items.Add("個位數"); dudNum.Items.Add("二位數"); dudNum.Items.Add("三位數"); dudNum.SelectedIndex = 0; //預設為第一個項目-個位數 } private void btnTest_Click(object sender, EventArgs e) Random ran = new Random(); //物件亂數ran switch (dudNum.SelectedIndex) case 0://選個位數時,產生1~9亂數 num1 = ran.Next(1, 9); num2 = ran.Next(1, 9); break; case 1://選二位數時,產生10~99亂數 num1 = ran.Next(10, 99); num2 = ran.Next(10, 99); case 2://選三位數時,產生100~999亂數 num1 = ran.Next(100, 999); num2 = ran.Next(100, 999); if (dudOpt.SelectedIndex == 0)//若選第一個項目-加法 { lblTest.Text = num1 + " + " + num2 + " =";//顯示題目 ans = num1 + num2; //計算答案 } else lblTest.Text = num1 + " - " + num2 + " ="; ans = num1 - num2; btnTest.Enabled = false; btnCheck.Enabled = true; txtAns.Clear(); //文字方塊清空 lblMsg.Text = "請輸入答案!"; private void btnCheck_Click(object sender, EventArgs e) int s_ans;//使用者輸入的答案 try { s_ans = int.Parse(txtAns.Text); }//取得使用者輸入的答案 catch { lblMsg.Text = "請輸入數值!"; return; } if (s_ans == ans) //若答案正確 { lblMsg.Text = "太棒了!答案正確!"; } { lblMsg.Text = "答錯了!答案是: " + ans; } btnTest.Enabled = true; btnCheck.Enabled = false;

本章結束 Take a Break …

課堂練習 設計一個彈珠檯