把网页上的数据显示在windowsForm的textbox里

原创 2006年05月17日 13:49:00

问题定义:

        用户在工作中需要把datagrid里的电话号码列其中的一个电话号码复制到windowsForm里的textbox里,然后在winForm里进行操作。由于粗心的用户经常复制错误,所以winForm程序的处理也是错误的。

功能需求:

        为了避免用户复制错误导致程序出错(输入的是垃圾,输出的也是垃圾)。现在决定做一个程序替用户复制。

设计方案:

        在datagrid里加一个模版列,用到html的文本控件,在javascript里引进fso对象,写文本文件。因在B/S系统上采用了Javascript写客户机本地文件的技术,所以需要在客户上设定IE的安全级别内的设置才能顺利在本地硬盘写入临时文件具体设置如下:

    打开IE程序,点菜单工具à选项,打开选项窗口,并点到安全页面。

          点“自定义级别”按钮,打开如下窗口,在“ActiveX控件和插件”列中将“对没有标记为安全的ActiveX控件进行初始化和脚本运行”设为“启用”。

   点击“确定”回到IE窗口即可。

最后,在winForm程序里创建线程读取文件,如果文件不存在,线程终止。

代码编写:

winform里的代码

private void mystart()
  {  
   if(File.Exists("d://phone.txt"))           //文件存不存在??
   {
    if(this.textBox1.Text.Length<11)
    {
     this.read_file();                         //读取文件
     System.Threading.Thread.Sleep(2000);
    }
   }
   else
   {
    System.Threading.Thread.Sleep(1000);//文件不存在,关闭线程
   }
  }
  private void read_file()
  {
   //读取文本文件.
   try
   {
    // StreamReader to read from a file.
    // The using statement also closes the StreamReader.
    using(StreamReader sr=new StreamReader("d://phone.txt"))
    {
     String line;
     while((line=sr.ReadLine())!=null)
     {
      textBox1.Text=textBox1.Text+line;
     }
    }
   }
   catch(Exception ee)
   {
    textBox1.Text=ee.Message.ToString();
   }
  }

private void timer2_Tick(object sender, System.EventArgs e)
  {
   System.Threading.Thread myThread;
   myThread=new System.Threading.Thread(new System.Threading.ThreadStart(mystart));
   myThread.Start();
   //在timer控件里,不停的启动线程。
  }

javascript代码:

<script type="text/javascript">
     function addr(obj)
     {
       var aa=obj;
       var fso,fj;
       fs=new ActiveXObject("Scripting.FileSystemObject");
       fj=fs.CreateTextFile("d://phone.txt",true);
       fj.WriteLine(aa);//写文件。
     } 
</script>

datagrid里的模版列代码。

<asp:TemplateField>
                    <ItemTemplate>
                        <button id="phone" value='<%# DataBinder.Eval(Container.DataItem,"FromTeleNumber") %>' onclick="addr(<%# DataBinder.Eval(Container.DataItem,"FromTeleNumber")%>)">
                        <%# DataBinder.Eval(Container.DataItem, "FromTeleNumber")%>
                        </button>
                    </ItemTemplate>
</asp:TemplateField>
 

这样在datagrid里点击电话号码就可以在winform里的textbox里看到它的值了。

 

相关文章推荐

如何将TextBox数据提交到GridView显示再保存到数据库

(1)UI层 using System; using System.Collections.Generic; using System.Linq; using System.Web; usi...

SerialPort如何读取串口数据并显示在TextBox上,多线程委托

/* SerialPort中串口数据的读取与写入有较大的不同。由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取。一、线程实时读串口;二、事件触发方式实现。 由于线程实时读串口的效率不是...

VB技巧【批量注释代码】【数据转换层字符串补0】【VB中的除法】【修改窗口标题与EXE图标】【TextBox控件的缺点】

批量注释代码 摘录于:https://zhidao.baidu.com/question/112681968.html 步骤1)在VB软件窗口,点视图-工具栏-编辑 步骤2)鼠标选中需要注释的多行...

WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框)

原文地址:http://www.cnblogs.com/xinaixia/p/5549843.html WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框) 1、添...
  • Metal1
  • Metal1
  • 2017年06月16日 10:36
  • 583

快速读取TextBox第N行的数据...

  • 2009年10月08日 01:50
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:把网页上的数据显示在windowsForm的textbox里
举报原因:
原因补充:

(最多只允许输入30个字)