最近一段时间用到的一些新知识点,多屏显示功能,后台运行系统托盘功能,excel表格导入功能

来源:互联网 发布:java语言的十一大特点 编辑:程序博客网 时间:2024/04/29 08:45

   最近一段时间在做一个新的小项目,虽然整体来说不是很难,但是还是遇到几个自己之前没做到的功能,琢磨了半天才弄出来,现记录下来了以备以后用的上

1.多屏显示功能

   一开始要实现这个的时候觉的这个真的好高大上,但是当完成之后发现,其实这些微软都帮我们封装好了

            Screen[] sc;//显示器            sc = Screen.AllScreens;            this.FormBorderStyle = FormBorderStyle.None; //无边框全屏显示            this.StartPosition = FormStartPosition.Manual;            this.Location = new Point(sc[1].Bounds.Left, sc[1].Bounds.Top);//sc[1]表示的是第二个显示器只需要修改里面的索引就可以了,0表示第一个,一般也不用设,主界面就是,第二个是1,以此类推            this.WindowState = FormWindowState.Maximized;

就只需要这几行代码就可以,控制是在哪个显示器里的,就在sc[1]这个来设置,我有完整的实例代码已经上传,可以下载下来看看,需要注意的是:如果你的电脑没有第二个显示器,而你这个窗口设置了在第二个显示器显示的话,就会报错

2.后台运行系统托盘功能

   这个功能我这边是一打开不显示主界面直接在后台运行,然后在系统托盘处有一个小图片可以操作就可以了,这边有个注意的地方,如果要一上来直接后台运行,就不能把隐藏本窗体的代码写在load事件里面,要写在Shown事件里面才能实现

        private void Form1_Shown(object sender, EventArgs e)        {            this.Hide();//隐藏本窗体        }

实现系统托盘功能需要先将窗体里面的ShowInTaskbar属性设置成False,然后拖一个notifyIcon控件contextMenuStrip控件,在将notifyIcon控件里的ContextMenuStrip属性选择这个contextMenuStrip控件的name,这样就实现了右击小图标出现菜单,注意,notifyIcon控件里的ICON属性必须添加小图标,不然系统托盘处,你就不知道哪个是你的程序

3excel表格上传导入功能

这个一般用的是比较多的,批量上传可以大大的加快上传到数据库中的效率

首先需要获得整个excel文件的全路劲用openFileDialog就可以,整个的文件路径就可以得到,代码如下

        private void button1_Click(object sender, EventArgs e)        {            OpenFileDialog openFileDialog1 = new OpenFileDialog();            //文件过滤器,指定选择的只能是后缀xls的文件            openFileDialog1.Filter = "Microsoft Excel files(*.xls)|*.xls;*.xlsx";            openFileDialog1.ShowHelp = true;            openFileDialog1.RestoreDirectory = true;            openFileDialog1.Multiselect = false;            openFileDialog1.FilterIndex = 1;            // 打开 "打开文件对话框",并将结果保存在result里。            DialogResult result = openFileDialog1.ShowDialog();            //如果用户选择"确定"            if (result == DialogResult.OK)            {                //打开文件对话框的文件名保存在MyExcelAll(取出来的是一个完整的路径)                MyExcel = openFileDialog1.FileName;                this.textBox1.Text = MyExcel;//将文件的全路径显示在文本框里            }        }
然后再将整个表格里的数据导入到数据库中,这里需要注意的是,表格必须是你规定好的代码如下
 private void button2_Click(object sender, EventArgs e)        {            OleDbConnection conn;            try            {                bool bl = true;                //如果表格是office2004版本的就用这个                // string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filenameurl + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";                //如果表格是office2007版本的就用这个                conn = new OleDbConnection("Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + MyExcel + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'");                conn.Open();                string sql = "select * from [Sheet1$]";                OleDbCommand mycommand = new OleDbCommand(sql, conn);                OleDbDataAdapter myadapter = new OleDbDataAdapter(sql, conn);                DataSet myset = new DataSet();                myadapter.Fill(myset);                foreach (DataRow mdr in myset.Tables[0].Rows)//循环读取第一个表格里面的数据                {                    DBHelp help = new DBHelp();                    string sql_ = "insert into number_(number_one,number_two) values('" + mdr[0].ToString() + "','" + mdr[1].ToString() + "')";                    if (help.ExecQuey(sql_) > 0)                    {                    }                    else                    {                        bl = false;                    }                }                if (!bl)                {                    MessageBox.Show("导入失败!");                }                else                {                    MessageBox.Show("导入成功!");                }                loding();            }            catch (Exception myex)            {                MessageBox.Show(myex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);            }        }

我这里给上面每个功能都做了一个小案例,可以下载下来,调试着看,跟容易知道怎么做!

0 0
原创粉丝点击