c# winform之小型數學計算器
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Collections;
namespace WindowsApplication1
{
//手工編寫winform
class test:Form
{
//1,引用calcbutton類
//2,根據上述類的不同例項,呼叫onkeypress方法事件
//3,組建4個calcbutton按鈕,根據其文字的不同,
private int isum = 0;
private Button iresultbutton;
public test()
{
//再次證明自己的三維空間思維很久缺,難怪高中立體幾何成績一般,所以同學們,一定要好好學習數學,於程式設計太重要了.
//如下編到一半處,一除錯,發現四個按鈕全擠在一起了,什麼意思呢,就是按鈕之間的座標搞亂了,還有一定要知道每個按鈕最好有個間隙,不然全接在一起,區別開來不明顯了
//所以我理解到思路很知道,在作什麼事前先把思路理清,打算作什麼,實現什麼功能,如何實現,這些實現之間的關係是什麼;這樣再作可能比一下子上手作好些
new calcbutton(this, "1", '1', 8, 24, 20, 20);//在此為何只要建構函式,連變數都沒有了,這就是下面獨立定義類calcbutton的作用,直接把此按鈕例項新增test窗體中了
new calcbutton(this, "2", '2', 50, 24, 20, 20);//y座標遞增16變為40,下面同理;即這些按鈕皆在同一個垂直線上
new calcbutton(this, "3", '3', 8, 50, 20, 20);//在此理解到一點,每個按鈕的左上角座標 (x,y)和理解的大小,另外為了按鈕間隔,要座標+按鈕大小+另外一些大小,這樣按鈕才有間隙
new calcbutton(this, "4", '4', 50, 50, 20, 20);//
iresultbutton = new Button();
//b1.Size = new Size(50, 50);
iresultbutton.Parent = this;
iresultbutton.Anchor = AnchorStyles.Right;//此指的是移動,所以anchor是在窗體變動時才起它的作用,與onresize方法類比,哈哈
//繼續分析 新增按鈕,就要實現功能,按字元1,第一個加數是1,其它同理;你要把每次運算的結果儲存起來,所以要一個欄位
//這樣就把這些按鈕新增到事件處理方法
//繼續分析,這些按鈕與onkeypress如何關係呢,這樣就要把辦法把control.click與control.onkeypress聯絡起來
foreach (Button bt in Controls)
bt.KeyPress += new KeyPressEventHandler(keypress1);
}
///
/// 應用程式的主入口點。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new test());
}
//在此中判斷點的到底是哪個按鈕,哈哈,把此按鈕的文字取出來,累加起來,然後返回累計值,要有判斷,因為是4個不同的按鈕,哈哈
private void buttonclick(object sender,EventArgs e)
{
InvokeOnClick((Control)sender, e) ;//invokeonclick引發指定控制元件click事件方法,經分析,哪個方法呼叫它,進而去呼叫buttononclick方法,如何呼叫, 不用它可以嗎,直接呼叫control.click行嗎,先試下
calcbutton calc = (calcbutton)sender;//這樣的話,經編寫和分析,沒辦法從鍵 盤按鍵得知到底按的哪個鍵,只有onkeypress事件方法可以,那麼不用buttononclick只用onkeypress可以嗎,繼續分析
//OnKeyPress(e);
}
//按鍵事件,獲到哪個calcbutton按下,得到keychar
private void keypress1(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case '1': isum += 1; iresultbutton.Text = isum.ToString(); ; break;
case '2': isum += 2; iresultbutton.Text = isum.ToString(); break;
case '3': isum += 3; iresultbutton.Text = isum.ToString(); break;
case '4': isum += 4; iresultbutton.Text = isum.ToString(); break;
}
}
}
//這要裡就要對按鈕類進行二次封裝,為何呢,因為要對這些按鈕以其上不同的文字進行觸發不同的操作,而且為了模擬鍵 盤操作,且禁用滑鼠觸發,把此功能封裝於此按鈕類中
//把此按鈕與form類連線起來,即form是它的父容器,且把此按鈕的文字與文字對應的按鍵文字包含在此類中,還要此按鈕的大小即位置,因為在窗體上有多個按鈕喲
public class calcbutton : Button
{
private char keychar1;
public calcbutton(Control parent, string strtext, char keychar, int x, int y, int cx, int cy)
{
Parent = parent;//把按鈕新增到窗體中,因為要在窗體類中引用此按鈕封裝類,此處parent方法引數對應窗體
Text = strtext;
keychar1 = keychar;
Location = new Point(x, y);//二合一,轉換思想,我剛開始不會寫這裡,我的理解是一個引數對應一個引數,而此處可以是=左邊或=右邊為一或二兩個引數,所以程式設計一定要編寫,不能只看,梳理思路
Size = new Size(cx, cy);//這個道理同上,就變聰明瞭哈哈
SetStyle(ControlStyles.Selectable, false);//體會兩點,一是control抽象類非常重要,在此就是個很重要的用處;setstyle是類control.setstyle(樣式,是否啟用樣式);設定為false,禁用滑鼠觸發,只啟動鍵盤
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-736264/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- c# winform 之fontdialogC#ORM
- c#計算器C#
- c# winform程式設計轉例C#ORM程式設計
- c# winform之contextmenu快捷選單C#ORMContext
- 雲端計算教程學習入門影片課件:小型雲端計算平臺怎麼搭建?
- Java8 學習之計算日期相差天數Java
- c# winform之選單menu_menuitem_mainmenu_etcC#ORMUIAI
- 美賽整理之Matlab的工程數學計算學習筆記(高等數學)Matlab筆記
- SCSI(小型計算機系統介面)工作原理計算機
- C#設計模式之迭代器模式C#設計模式
- c# winform 之control onpaint事件及drawstring方法C#ORMAI事件
- c# winform之繪畫及畫直曲線相關C#ORM
- c# winform之手工定時器timer操作示例C#ORM定時器
- [轉載] python數學計算模組之math常用函式學習使用Python函式
- JS-計算日期差值;計算日期之間的月數JS
- 由例項計數器引出(C#) (轉)C#
- winform c#寫ini檔案ORMC#
- 用c#控制windows自帶計算器例項C#Windows
- c# winform之單選鈕2狀態變換程式碼C#ORM
- C#之變數C#變數
- 冪的計算(C#)C#
- 一個數學表示式的計算
- 【原創】開源Math.NET基礎數學類庫使用(11)C#計算相關係數C#
- 用於計算數學統計的 PHP 包PHP
- 小飛計算器(小飛可程式設計複數計算器)使用者手冊程式設計
- Linux雲端計算技術學習:常用虛擬機器引數Linux虛擬機
- 工控開發-C# WinForm UI框架C#ORMUI框架
- 引文——平行計算的學習之殤
- 仿Windows計算器--學習筆記Windows筆記
- 數學專業的數學與計算機專業的數學的比較計算機
- 【原創】開源Math.NET基礎數學類庫使用(17)C#計算矩陣條件數C#矩陣
- spark的計算器與廣播變數Spark變數
- 小型團隊硬體設計之元器件管理
- 在手機上程式設計:自制的小飛可程式設計複數計算器(小飛計算器)程式設計
- [TJOI2018]數學計算
- C# 位運算及例項計算C#
- java方法練習之簡單計算器Java
- C# sizeof 計算規則C#