新普京网站-澳门新普京 > 前端 > 实现日历样式的下拉式计算器,2010数据导入到SQL

实现日历样式的下拉式计算器,2010数据导入到SQL

2019/12/29 21:33

本文由码农网 – 小峰原创翻译,转载请看清文末的转发必要,迎接参预大家的付费投稿陈设!

(注:注释的颜色原来为暗黄,在那成为茶褐,有一点点困难,但不会引致阅读影响。放入Visual Basic二零一二代码编辑器后会还原成洋蓟绿。)

正文介绍了怎么样在Visual Studio中开创客商控件来呈现下拉式总计器,弹出效果形似于日历控件。

摘  要:DataGridView控件作为数据传输的中介,只需简短的几行代码,可以完成数量成分的无缝传递。在这里篇简短的案例中,笔者所做的只是多少传输的最简便易行代码,在分界面包车型大巴视觉感上,大致平素不任何迷惑人的地点。可是,小编要追求的可不是什么高级代码片段,而是活代码——在一点一滴可专门的学业的主次意况下,就可以便Cavalier成二个完好的次第。

介绍

假如我们正在做三个好像于仓库储存调控和计费系统的品种,有些部分大概必得手动总计数值。因而,客商就只可以动用总括器得到结果,再填入到输入字段中,只怕在干活窗口上单独展开贰个计算器窗口。一言以蔽之,各个困难和分神。

那篇文章主要描述的是如何加多下拉式总结器到DataGridView单元格中,如下图:

图片 1

图片 2

关键字:DataGridView控件;Excel 2010;数据;SQL server 2012;

采纳代码

先是步,大家必得先创建一个函数总结器,而且能够利用控件。因此,不妨先创建一个Visual Studio用户自定义控件。如何是好吧?张开VS,成立多个新的Windows窗体应用程序(以至你也能够在你日前的种类中那样做,但最佳能(CANON卡塔尔分开,然后结合)。

接下来,在Solution Explorer中,右键单击项目,接纳add->User Control。命名(这里运用“CalculatorControl”),并丰裕。此时会给您三个像工作空间相符的Windows窗体。在它上边,用控件工具箱中的TextBoxButton制造二个总计器的布局。构造越小越好(想想日历控件),因为那就是个计算器而已。

图片 3

为了神速解决计算器功用,能够点击这里下载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中,能够让分界面显得更为相互作用。

首先步:成立一个“Excel 2010数额导入SQL Server 2013”(“起初”——>“全体程序”——>“Microsoft Visual Studio 二〇一二”——>“Visual Studio 二零一二”——>“开头”——>“新建”——>“项目”选中Visual Basic、选中Window应用程序——>名称中输入Excel数据导入SQL Server——“分明”)。

许可证

那篇随笔中其余相关的源代码和文件,都以在The Code Project Open License (CPOL卡塔尔国许可下的。

其次步:创设程序分界面。(在工具箱中增加三个DataGridView控件,多个Button开关。

其三步:设置窗体和控件属性。

窗体或控件

质量名称

属性值

窗体form1

Text

Excel 二〇一〇数目导入SQL Server 2013

Button1

Text

Excel数据导入DataGridView

(Name)

excelToDataGridView_Button

Button2

Text

DataGridView导入到SQL server

(Name)

dataGridViewtoSQLserver_Button

DataGridView1

默认

默认

第四步:编写代码:

   a:导入四个称呼空间(郎窑红字是注释,不会被编写翻译

      

Imports System.Data            '本例中由于使用DataSet类,又不想输入全名,就必须导入System.Data名称空间
Imports System.Data.SqlClient  '本例中由于使用SQLConnection、SqlDataAdapter、SqlCommand、SqlParameter类,‘又不想输入全名,就必须导入System.Data.SqlClient名称空间
Imports System.Data.OleDb      '本例中由于使用OleDb Connection、OleDb DataAdapter、OleDb Commandr类,‘又不想输入全名,就必须导入System.Data.SqlClient名称空间

 

     b:添加excelToDataGridView_Button开关的单击事件(青色字是注释,不会被编写翻译

上一篇:开发者必须了解的常见文件系统对比 下一篇:信托行使详细明白,委托及其用法