亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#日歷樣式的下拉式計算器實例講解

2020-01-24 01:27:06
字體:
來源:轉載
供稿:網友

本文介紹了如何在Visual Studio中創建用戶控件來顯示下拉式計算器,彈出效果類似于日歷控件。

介紹

如果我們正在做一個類似于庫存控制和計費系統的項目,有些部分可能必須手動計算數值。因此,用戶就不得不使用計算器得到結果,再填入到輸入字段中,或者在工作窗口上單獨打開一個計算器窗口??傊?,各種不便和麻煩。

這篇文章主要描述的是如何添加下拉式計算器到DataGridView單元格中,如下圖:

使用代碼

第一步,我們必須先創建一個函數計算器,并且能夠使用控件。因此,不妨先創建一個Visual Studio用戶自定義控件。怎么做呢?打開VS,創建一個新的Windows窗體應用程序(甚至你也可以在你當前的項目中這么做,但最好能分開,然后結合)。

然后,在Solution Explorer中,右鍵單擊項目,選擇add->User Control。命名(這里使用“CalculatorControl”),并添加。這時會給你一個像工作空間一樣的Windows窗體。在它上面,用控件工具箱中的TextBox和Button創建一個計算器的布局。布局越小越好(想想日歷控件),因為這就是個計算器而已。

為了快速搞定計算器功能,可以點擊這里下載NCal(確保下載二進制文件),并添加到項目的引用文件中。

實現每個數字按鈕的點擊事件,將對應的數字輸入/(追加)到文本框中,然后用同樣的方式實現其他按鈕,如+,X,/…并把對應的符號輸入/(追加)到文本框中…

例如在文本框中輸入:2 * 3 + 4

然后使用下面的代碼來驗證表達式,并得到結果:

// using System.Windows.Forms; using NCalc; //   string resText;   bool eqPressed;   double result;  public void btnEqual_Click(object sender, EventArgs e)     {       Expression ex = new Expression(textBox1.Text);       if (ex.HasErrors())       {         //Invalid Expression       }       else       {         result = Convert.ToDouble(ex.Evaluate());         resText = result.ToString();       }       textBox1.Text = resText;       text = resText;       eqPressed = true;      } // 

現在計算器功能已經完成。直接構建解決方案,那么你可能會發現用戶控件顯示在工具箱頂部。你可以添加Windows窗體,拖放用戶控件到窗體中運行,看看能否正常工作。

然后,在你想要添加下拉式計算器的項目中,創建另一個只有一個小按鈕的用戶控件。這個按鈕將被用于打開計算器。

添加CalculatorControl內置引用文件到項目中。

創建一個新的繼承ToolStripDropDown的類:

using System.Windows.Forms;  class CalDrop : ToolStripDropDown   {    Control content;    ToolStripControlHost drop;  public CalDrop(CalculatorControl content)     {        this.content = content;        this.drop= new System.Windows.Forms.ToolStripControlHost(content);        //Add the host to the list       this.Items.Add(this.drop);     } } 

在按鈕的單擊事件中添加以下代碼:

private void button1_Click(object sender, EventArgs e)     {       CalculatorControl calculator = new CalculatorControl();       CalDrop cal = new CalDrop(calculator);        Point controlLoc = fm.PointToScreen(button1.Location);       Point relativeLoc = new Point(controlLoc.X + button1.Width + 100,   controlLoc.Y + button1.Height * 2);       Rectangle calRect = button1.DisplayRectangle;       cal.Show(locPoint);     } 

添加控件到DataGridViewCell

在你構建解決方案時,新的按鈕控件會出現在工具箱中。添加以下代碼到項目的窗體類中。

private CalculatorPick calculator;  public form1() {       calculator = new CalculatorPick();        calculator.Visible = false;       dataGridView2.Controls.Add(calculator); }  private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e) {         if (e.ColumnIndex == clmCommision.Index)         {           Rectangle calRect = dataGridView2.GetCellDisplayRectangle    (e.ColumnIndex, e.RowIndex,false);                     Point p = calculator.FindForm().PointToClient   (calculator.Parent.PointToScreen(calculator.Location));           p.X -= calculator.Width/3;           p.Y += calculator.Height;           calculator.LocPoint = p;            calculator.Width = calRect.Width/3;           calculator.Height = calRect.Height;            calculator.Visible = true;           calculator.Calculator.btnEqual.Click += new EventHandler(calculatorBtnEqlClicked);         }         else           if(calculator!=null)           calculator.Visible = false; }  void calculatorBtnEqlClicked(object sender, EventArgs e) {            dataGridView2.CurrentCell.Value = calculator.Calculator.Result.ToString();      } 

本技巧描述的是添加控件到DataGridView中,可以讓界面顯得更為互動,喜歡的朋友就點個贊吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产91久久| 91精品国产91久久久久| 精品成人久久av| 久久精品91久久久久久再现| 伊人伊成久久人综合网站| 亚洲欧美在线免费| 91成人天堂久久成人| 国外视频精品毛片| 久久免费国产精品1| 亚洲国产精品va| 国产精品女主播视频| 午夜精品在线视频| 久久精品青青大伊人av| 国产精品久久久久99| 欧美一级大胆视频| 国产欧美日韩综合精品| 亚洲综合中文字幕在线观看| 91久久精品一区| 国产亚洲视频在线| 精品国产乱码久久久久久天美| 91国产美女在线观看| 欧美在线视频观看免费网站| 国产精品极品美女在线观看免费| 国产欧美精品在线播放| 国产色综合天天综合网| 91精品视频网站| 日本韩国欧美精品大片卡二| 精品综合久久久久久97| 欧美在线视频网站| 黑人狂躁日本妞一区二区三区| 国外成人在线视频| 亚洲毛片在线观看| 亚洲高清av在线| 久久精品男人天堂| 久久久综合免费视频| 欧美黄色片在线观看| 国产91精品不卡视频| www国产亚洲精品久久网站| 欧美亚洲视频在线观看| 久久99久久99精品中文字幕| 国产精品亚洲一区二区三区| 久久久久这里只有精品| 亚洲iv一区二区三区| 国产精品免费观看在线| 青青久久av北条麻妃海外网| 久久人人爽人人爽人人片av高清| 亚洲国产美女精品久久久久∴| 黑人极品videos精品欧美裸| 久久人人爽人人爽人人片av高清| 久久国产精品网站| 久久视频在线免费观看| 亚洲一区av在线播放| 国产精品久久久久秋霞鲁丝| 韩国美女主播一区| 国产精品免费一区二区三区都可以| 日韩在线视频线视频免费网站| 国产视频丨精品|在线观看| 国产成人精品a视频一区www| 久久久久久久久久久久久久久久久久av| 一区二区三区久久精品| 欧美激情精品久久久久| 亚洲天堂网站在线观看视频| 久久久精品电影| 亚洲综合国产精品| 91精品国产777在线观看| 狠狠综合久久av一区二区小说| 97精品国产91久久久久久| 狠狠色狠狠色综合日日小说| 久久影院在线观看| 国产91精品视频在线观看| 亚洲女成人图区| 亚洲女同性videos| 欧美区在线播放| 中文在线资源观看视频网站免费不卡| 国产精品伦子伦免费视频| 国产精品美女主播在线观看纯欲| 亚洲精品小视频在线观看| 久久欧美在线电影| 在线播放精品一区二区三区| 国产精品久久久久77777| 日韩av网站大全| 亚洲 日韩 国产第一| 亚洲自拍偷拍区| 亚洲国产精品大全| 中文字幕成人精品久久不卡| 亚洲精品二三区| 久久久国产影院| 日韩精品极品在线观看| 欧美在线性视频| 91精品久久久久久久| 成人欧美一区二区三区黑人孕妇| 亚洲欧美日韩一区二区在线| 91影视免费在线观看| 亚洲午夜未删减在线观看| 91亚洲精品在线| 久久精品视频中文字幕| 人人澡人人澡人人看欧美| 91精品国产乱码久久久久久久久| 一区二区三区四区在线观看视频| 精品亚洲一区二区三区在线观看| 亚洲第一页中文字幕| 91亚洲精品在线| 曰本色欧美视频在线| 日韩激情av在线播放| 日韩风俗一区 二区| 国产欧美日韩精品丝袜高跟鞋| 成人做爰www免费看视频网站| 国产视频精品va久久久久久| 亚洲欧美国内爽妇网| 成人网在线免费看| 国产精品欧美久久久| 国产在线不卡精品| 一本色道久久综合狠狠躁篇的优点| 久久久亚洲欧洲日产国码aⅴ| 亚洲aaaaaa| 国产国语videosex另类| 青青草99啪国产免费| 国产精品亚发布| 亚洲区中文字幕| 国产视频欧美视频| 91国产视频在线| 欧美极品欧美精品欧美视频| 精品欧美aⅴ在线网站| 成人福利在线观看| 青青久久av北条麻妃海外网| 91精品国产综合久久久久久久久| 最近2019好看的中文字幕免费| 久久视频在线看| 国产69精品99久久久久久宅男| 日韩中文字幕欧美| 欧美一级片一区| 欧美老少配视频| 日韩免费在线电影| 久久成年人免费电影| 成人福利在线观看| 国产精品久久久久9999| 欧美国产视频一区二区| 欧美精品videos性欧美| 国产精品自产拍在线观看中文| 欧美黄色www| 成人黄色短视频在线观看| 亚洲国产精品久久久久| 欧美国产日韩一区二区| 成人午夜黄色影院| 久久国产精品视频| 日韩欧美999| 日韩久久精品成人| 亚洲国内精品在线| 日韩中文在线中文网三级| 国产亚洲aⅴaaaaaa毛片| 精品亚洲一区二区三区在线播放| 亚洲色图在线观看| 欧美视频在线视频| 日韩av电影手机在线| 国外成人免费在线播放| 91在线视频免费| 久久精品亚洲精品| 成人黄色生活片| 亚洲精品国产精品国自产观看浪潮| 精品视频久久久久久久| 亚洲国产成人在线视频| 亚洲人成在线电影| 国产精品久久久久久久电影| 国产精品视频久久久久|