winform使用webbrowser 相关

最近玩玩的,顺便......

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Threading;
using System.IO;

namespace FTTH改造工程设备关联辅助工具
{
    public partial class Form1 : Form
    {
        DataSet 读取表格数据 = new DataSet();
        string[] 列名 = new string[] { "设备编号", "查询号码", "用户地址", "完成状态", "完成时间" };

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            创建数据显示(列名, 数据集);
            数据集.Columns[2].Width = 580;
            string 网页 = Application.StartupPath + "\\万年历查询.htm"; 打开网页.Navigate(网页);
        }

        private void 退出_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void 导入数据_Click(object sender, EventArgs e)
        {
            OpenFileDialog 打开文件 = new OpenFileDialog();
            打开文件.Filter = "Excel表格文件(xlsx)|*.xlsx;|Excel表格文件(xls)|*.xls;|文本文件(txt)|*.txt;|所有文件(*.*)|*.*";
            if (打开文件.ShowDialog() == DialogResult.OK)
            {
                if (打开文件.FileName.Contains(".xls"))
                    读取微软表格文件(打开文件.FileName);
            }
            else 数据集.DataSource = null;
        }

        private void 读取微软表格文件(string 文档名)
        {
            string 微软表格 = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + 文档名 + "; Extended Properties = \"Excel 12.0 Xml; HDR = No\"";
            OleDbConnection 表格文件 = new OleDbConnection(微软表格);
            表格文件.Open();
            OleDbDataAdapter 连接表格 = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", 表格文件);
            连接表格.Fill(读取表格数据, "读取Excel数据");
            表格文件.Close();
            数据集.DataSource = 读取表格数据.Tables["读取Excel数据"];
            控制颜色(数据集);
        }

        private void 创建数据显示(string[] 表名, DataGridView 控件名)
        {
            控件名.Columns.Clear();
            foreach (string 元素 in 表名)
            {
                DataGridViewTextBoxColumn 列 = new DataGridViewTextBoxColumn();
                列.HeaderText = 元素; 列.DataPropertyName = 元素;
                列.MaxInputLength = 3988; 控件名.Columns.Add(列);
            }
        }

        private void 控制颜色(DataGridView 控件名)
        {
            for (int 颜色 = 0, 行数 = 控件名.RowCount; 颜色 < 行数; 颜色++)
                if (颜色 % 2 == 0) 控件名.Rows[颜色].DefaultCellStyle.BackColor = Color.AliceBlue;
        }

        private void 提取数据_Click(object sender, EventArgs e)
        {
            /*for (int 数 = 0; 数 < 数据集.RowCount; 数++)
            { }
            string 发送号码 = 数据集.Rows[数].Cells[1].Value.ToString();
                HtmlElement ID控件 = 打开网页.Document.All["PSTNCodeInput"];
                if (ID控件 != null) ID控件.SetAttribute("value", 发送号码);
                Thread.Sleep(50);
                HtmlElement ID按钮 = 打开网页.Document.All["SearchButton"];
                if (ID按钮 != null) ID按钮.InvokeMember("click");
                Thread.Sleep(2000);
                ID控件 = 打开网页.Document.All["AddressNameInput"];
                数据集.Rows[数].Cells[2].Value = ID控件.GetAttribute("value");*/

        }

        private void 连接网站_Click(object sender, EventArgs e)
        {
            打开网页.Navigate(new Uri(网址.Text.Trim()));
        }

        private void 数据集_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int 定行 = 数据集.CurrentCellAddress.Y, 定列 = 数据集.CurrentCellAddress.X;
            if (定列 == 3)
            {
                数据集.Rows[定行].Cells[3].Value = "√";
                数据集.Rows[定行].Cells[4].Value = DateTime.Now.ToShortDateString();
            }
            if (定列 < 3)
                Clipboard.SetText(数据集.Rows[定行].Cells[定列].Value.ToString());
            
        }

        private void 导出数据_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application 创建Excel文件 = new Microsoft.Office.Interop.Excel.Application();
            this.Invoke(new Action(delegate()
            {
                创建Excel文件.Application.Workbooks.Add(true);
                for (int 标头 = 0; 标头 < 列名.Length; 标头++) 创建Excel文件.Cells[1, 标头 + 1] = 列名[标头];
                for (int 行 = 0, 数 = 数据集.RowCount; 行 < 数; 行++)
                {
                    数据集.CurrentCell = 数据集.Rows[行].Cells[0];
                    for (int 列 = 0, 量 = 数据集.ColumnCount; 列 < 量; 列++)
                        创建Excel文件.Cells[行 + 2, 列 + 1] = "'" + 数据集.Rows[行].Cells[列].Value;
                }
                创建Excel文件.Visible = true;/* 创建Excel文件.SaveWorkspace();*/ 创建Excel文件.Quit();
            }));
            MessageBox.Show("数据导出Excel成功,请保存好!" + 数据集.RowCount.ToString() + "行数据。", "友情提示!"); 创建Excel文件.Quit();
        }

        private void 数据集_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(typeof(System.String)) && 数据集.Rows.Count > 0)
            {
                Point clientPoint = 数据集.PointToClient(new Point(e.X, e.Y));
                数据集.Rows[数据集.HitTest(clientPoint.X, clientPoint.Y).RowIndex].Cells[数据集.HitTest(clientPoint.X,
                clientPoint.Y).ColumnIndex].Value = (System.String)e.Data.GetData(typeof(System.String));
            }
            int 定行 = 数据集.CurrentCellAddress.Y, 定列 = 数据集.CurrentCellAddress.X;
            string 数据整理 = 数据集.Rows[定行].Cells[2].Value.ToString();
            if (数据整理.Contains("|")) if (数据整理.Length - 数据整理.IndexOf("|") < 3)
                数据集.Rows[定行].Cells[2].Value = 数据整理.Remove(数据整理.IndexOf("|")).Trim();
        }

        private void 数据集_DragEnter(object sender, DragEventArgs e)
        {
            if (数据集.Rows.Count > 0)
                e.Effect = (e.Data.GetDataPresent(typeof(System.String))) ?
                    DragDropEffects.Copy : DragDropEffects.None;
        }

        private void 打开网页_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            int 定行 = 数据集.CurrentCellAddress.Y, 定列 = 数据集.CurrentCellAddress.X;
            HtmlElement ID控件 = 打开网页.Document.All["PSTNCodeInput"];
            if (e.KeyCode == Keys.Enter)
                if (ID控件 != null)/*赋值*/
                    ID控件.SetAttribute("value", 数据集.Rows[定行].Cells[定列].Value.ToString());
            if (e.KeyCode == Keys.Space)
            {
                ID控件 = 打开网页.Document.All["AddressNameInput"];/*获值*/
                if (数据集.Rows.Count > 0)
                {
                    if (ID控件 != null)数据集.Rows[定行].Cells[2].Value = ID控件.GetAttribute("value");
                    string 数据整理 = 数据集.Rows[定行].Cells[2].Value.ToString();
                    if (数据整理.Contains("|")) if (数据整理.Length - 数据整理.IndexOf("|") < 3)
                        数据集.Rows[定行].Cells[2].Value = 数据整理.Remove(数据整理.IndexOf("|")).Trim();
                }
            }
        }


    }
}

 也找一些资料看看同时记录备用:C# WinForm程序如何与js交互介绍 点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值