C#串口通信问题,两个串口间互发信息 10C

一个串口com1向另一个串口com2发信息 比如发1-10之间的任意一个数,com2接收到后就会回复a ,11-20之间的数,com2就会回复b 以此类推 ,如果没回复,则com1继续向com2重复发。请大神们给个思路,或者最好是参考代码,谢谢

2个回答

C#非常的强大而且友好,串口的通信可以通过编程环境(这里我用的是Visual Studio 2010),如果有需要的话可以给我信息,我有完整版的安装包。如下图,简单的调用和选择就完成了串口的基本配置。

下面主要就是编程的问题了,在窗体Load的进程中可以完成串口的启动

复制代码
1 private void Form1_Load(object sender, EventArgs e)
2 {
3 serialPort1.PortName = "COM4";
4 serialPort1.BaudRate = 9600;
5 serialPort1.Open();
6 this.textBox1.Clear();
7 thread = new Thread(CrossThreadFlush);
8 thread.IsBackground = true;
9 thread.Start();
10 }
复制代码
而后就是读取数据的操作,这时候用到事件

1 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)

在这个事件里面编程就可以了,但是在对窗体内文本进行操作的时候会发现出现了线程的冲突和错误。网上给出的一种解决方法是采用代理的方式具体的程序如下

复制代码
1 public partial class Form1 : Form
2 {
3 private delegate void FlushClient(); //代理
4 Thread thread = null;
5 uint DateTemp;
6 uint Datefalg = 0;
7 uint counter = 0;
8 uint DateTemp1 = 0;
9 uint TMP1;
10 uint RH1;
11 uint PRESS1;
12 double TMP;
13 double RH;
14 double PRESS;
15
16 public Form1()
17 {
18 InitializeComponent();
19 }
20
21
22 private void Form1_Load(object sender, EventArgs e)
23 {
24 serialPort1.PortName = "COM4";
25 serialPort1.BaudRate = 9600;
26 serialPort1.Open();
27 this.textBox1.Clear();
28 thread = new Thread(CrossThreadFlush);
29 thread.IsBackground = true;
30 thread.Start();
31 }
32
33

34 private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
35 {
36 counter=counter+1;
37 DateTemp = (uint)this.serialPort1.ReadByte();
38 if (DateTemp == 0xF1)
39 {
40 Datefalg = 1;
41 DateTemp1 = 0;
42 DateTemp = 0;
43 counter=0;
44 }
45 if (DateTemp == 0xF2)
46 {
47 Datefalg = 2;
48 DateTemp1 = 0;
49 DateTemp = 0;
50 counter=0;
51 }
52 if (DateTemp == 0xF3)
53 {
54 Datefalg = 3;
55 DateTemp1 = 0;
56 DateTemp = 0;
57 counter=0;
58 }
59 if (Datefalg == 1 && DateTemp != 0xF1)
60 { if(counter==1)
61 DateTemp1 = DateTemp;
62 if (counter == 2)
63 {
64 TMP1 = DateTemp1 * 256 + DateTemp;
65 TMP = (0.01 * TMP1) - 40;
66 }
67

68 }
69 if (Datefalg == 2 && DateTemp != 0xF2)
70 {
71 if (counter == 1)
72 DateTemp1 = DateTemp;
73 if (counter == 2)
74 {
75 RH1 = DateTemp1 * 256 + DateTemp;
76 RH = (0.0405 * RH1) - 4-0.0000028*RH1*RH1;
77 }
78
79 }
80 if (Datefalg == 3 && DateTemp != 0xF3)
81 {
82 if (counter == 1)
83 DateTemp1 = DateTemp;
84 if (counter == 2)
85 {
86 PRESS1 = DateTemp1 * 256 + DateTemp;
87 PRESS = (PRESS1-16384)*90/16384 + 30;
88 }
89 }
90 }
91
92 private void CrossThreadFlush()
93 {
94 while (true)
95 {
96 //将sleep和无限循环放在等待异步的外面
97 Thread.Sleep(500);
98 ThreadFunction();
99 }
100 }
101

102 private void ThreadFunction()
103 {
104 if (this.textBox1.InvokeRequired)//等待异步
105 {
106 FlushClient fc = new FlushClient(ThreadFunction);
107 this.Invoke(fc); //通过代理调用刷新方法
108

109 }
110 else
111 textBox1.Text = TMP.ToString("0.00");
112 if (this.textBox2.InvokeRequired)//等待异步
113 {
114 FlushClient fc = new FlushClient(ThreadFunction);
115 this.Invoke(fc); //通过代理调用刷新方法
116
117 }
118 else
119 textBox2.Text = RH.ToString("0.00");
120 if (this.textBox3.InvokeRequired)//等待异步
121 {
122 FlushClient fc = new FlushClient(ThreadFunction);
123 this.Invoke(fc); //通过代理调用刷新方法
124
125 }
126 else
127 textBox3.Text = PRESS.ToString("0.00");
128

129 }
130

131

132 }
复制代码
通过这样的一番调试之后才得以程序正确的运行,由于工科程序员和计算机程序员的编程思想还是有差别的,所以写的不好的地方请轻喷。

多线程处理串口的倒是没有,DEMO代码倒是有,你搜下 ThreadPool.QueueUserWorkItem 这个东西吧
var doEvents = new ManualResetEvent[threadCount];
for (var i = 0; i < threadCount; i++)
{
doEvents[i] = new ManualResetEvent(false);
ThreadPool.QueueUserWorkItem(new WaitCallback(DealData), new object[] { i, doEvents[i] });
}
WaitHandle.WaitAll(doEvents);
public void DealData(object eventParams) {

var threadId = (int)(((object[])eventParams)[0]); //当前线程ID

var doEvent = (ManualResetEvent)(((object[])eventParams)[1]);

var perThreadCount = dataTable.Rows.Count / threadCount; //平均每个线程处理数据
for (int i = 0; i < dataTable.Rows.Count; i++) {

      if (i < (threadId) * perThreadCount) continue;
if ((i >= (threadId + 1) * perThreadCount) && threadId != (threadCount - 1)) break;
ImportData(dataTable.Rows[i]);

}

doEvent.Set();

}

2 、

SerialPort类 的介绍
http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(v=vs.80).aspx

这个例子网上有,哎....我一直以为 serailport 不是一个控件呢!
我现在疑问?_难道 所有的再c#可以引用的类,都对应一个控件吗?

还有c#的添加监听器的方法,该如何添加呢?
如果是控件的话,直接双击控件就可以添加上监听器,但是对于一般的对象的话就得
用+=这个方法添加....还没怎么看c#,慢慢来

关于这个程序是有bug的,而且我也没有修正,因为串口对象的 readline是个阻塞方法,所以当你运行到这个语句的时候,如果读不到数据的话就会导致整个程序假死,只能强制终止 这个程序了

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.IO.Ports;//新调用的类所在的命名空间

namespace 串口控制
{
public partial class Form1 : Form
{
//我用了控件,所以不用初始化对象了!!
//SerialPort sPort;//声明一个串口类对象,该对象的初始化我放到了

    public Form1() 
    { 
        InitializeComponent(); 


    } 

    //发送按钮的响应时间 
    private void button1_Click(object sender, EventArgs e) 
    { 

        //对于中文的话,要先对其进行编码,将其转换成 _Base64String ,否则你得不到中文字符串的 
        byte[] data = Encoding.Unicode.GetBytes(textBox1.Text); 
        string str = Convert.ToBase64String(data); 
        sPort.WriteLine(str); 
        MessageBox.Show("数据发送成功","系统提示"); 

    } 

    private void button2_Click(object sender, EventArgs e) 
    { 

        //解码然后将字符串赋值给 文本框的 文本区 
        byte[] data = Convert.FromBase64String(sPort.ReadLine()); 
        textBox2.Text = Encoding.Unicode.GetString(data); 

    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 

        sPort.PortName = "com3";//串口的portname 
        sPort.BaudRate = 9600;//串口的波特率 
        sPort.Open(); 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
       //关闭串口 
        sPort.Close(); 
    } 


} 

}


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#串口通信问题,两串口互发信息
实现效果如下,串口com1给com2发1-10之间的任意一个数,com2收到后就会给com1回复a,11-20之间则回复b。若没回复,则重复向com2发。能不能给个类似的代码或者思路,谢谢
C# 串口间通讯
利用C# 界面编程 构建多个界面 进行相互间的串口通讯 ,也可应用于向外部或其他软件通过串口发送数据。
C#串口间通讯
C#串口间通讯using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 串口通讯练习 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; }
如何在两个串口间建立通道
Linuxrn有两个串口com1,com2,com1接设备上。rn现在想通过com2可以将输入数据发到com1上,作为com1的输入rn将com1的输出,发到com2上,作为com2的输出。rn感觉上类似于建立两个管道的过程,但是又无从下手。rn哪为dx能指点一下,谢谢
Windows 窗口间的通信实验 - 窗口间的消息互发
窗口过程函数 中 参数的设计 与 MSG数据结构 前4个相同,注意,这是规定,必须遵守的。 有关 各类 MSG的参数我们直接上 msdn 上搜索,这里我们是来搜索 WM_SETTEXT 消息 使用 SendMessage 发送消息,直接发送到 窗口过程 中,先查看 SendMessage 参数,其中根据发送的消息类型,判断wParam为 NULL。 也就是说:SendMessage与其发送的消...
窗口间的通信(消息互发与数据传递)
一.窗口间的消息互发: 首先建立一个接收程序:ReceiveMessage.exe 代码:            .386 .model flat,stdcall option casemap:none ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ; Inclu
linux两个进程通过消息队列互发信息
#include rn#include rn#include rn#include rn#include rnrn#include rn#include rn#include rnrnstruct my_msg_strnrn long int my_msg_type;rn unsigned char msg_data_buf[36];rn;rnrnint main(void)rnrn int i;rn int running=1;rn int rtn_rcv;rn int msg_rcv_id;rn int msg_snd_id;rn key_t msg_snd_key;rn key_t msg_rcv_key;rn struct my_msg_st data_msg1;rn long int msg_to_receive=0;rn msg_snd_key = ftok("/tmp/TTMS/GM", 'b');rn msg_rcv_key = ftok("/tmp/TTMS/GM", 'a');rnrn /*创建消息队列*/rn msg_rcv_id=msgget(msg_rcv_key,0666 | IPC_CREAT);rn msg_snd_id=msgget(msg_snd_key,0666 | IPC_CREAT);rn rn if(msg_rcv_id==-1)rn rn fprintf(stderr,"msgget failed with error: %d\n",errno);rn exit(EXIT_FAILURE);rn rn printf("the message1 rcv id:%d\n", msg_rcv_id);rn rn if(msg_snd_id==-1)rn rn fprintf(stderr,"msgget failed with error: %d\n",errno);rn exit(EXIT_FAILURE);rn rn printf("the message1 snd id:%d\n", msg_snd_id);rn for (i=0; i<36; i++)rn rn data_msg1.msg_data_buf[i] = 36 + i; rn rn data_msg1.my_msg_type = getpid();rnrn /*循环从消息队列中接收消息*/rn while(running)rn rn if(msgsnd(msg_snd_id,&data_msg1,36,0)==-1)rn rn fprintf(stderr,"msgsed failed\n");rn exit(EXIT_FAILURE);rn rn /*读取消息*/rn if((rtn_rcv = msgrcv(msg_rcv_id,&data_msg1,36,msg_to_receive,0))==-1)rn rn fprintf(stderr,"msgrcv failed with error: %d\n",errno);rn exit(EXIT_FAILURE);rn rn for (i=0; i>>%d>>>",data_msg1.msg_data_buf[i]);rn rn /* 重新进行赋值 */rn for (i=0; i<36; i++)rn rn data_msg1.msg_data_buf[i] = i; rn rn sleep(3);rn rnrn这里明明创建了两个消息队列,为何打印出来的消息队列的ID值确实一样的。rn msg_rcv_id=msgget(msg_rcv_key,0666 | IPC_CREAT);rn msg_snd_id=msgget(msg_snd_key,0666 | IPC_CREAT);rn这个程序想在一个进程中创建两个消息队列,一个用来发送消息给另一个进程,一个队列用来接受另一个进程的消息。rn可是这里怎么创建了以后只是一个消息了呢?导致自己发送了信息,自己接受了信息?????为什么啊???
两个客户端怎么通过服务器互发信息
新手一个 求大神们指点
简单问题:如何在两个串口间传文件?
rt
c# 两个进程操作一个txt,互发信息均可实现
c# 两个进程操作一个txt,互发信息均可实现
两个窗口间参数传递问题?
我想把一窗口的某些参数(结构)通过一打开按钮打开愣外一窗口时传递给他。rnrn比如:在powerbuilder中 有结构(structure),并定义:str_1 ,rnstr_1结构中有 a1 string , a2 date ,a3 integer 等。rn///////////////buttonclicked 事件中 调用rnstr_1.a1 = '11'rnstr_1.a1 = 2003-05-27 18:00:10rnstr_1.a3 = 100rn//OpensheetWithParm 参数说明:w_1 为一窗口 ,rn//按 w_app_frame 窗口 open this sheet , rn//0 menu position , ArrangeOpen Layered! type rnOpensheetWithParm(w_1,str_1,w_app_frame, 0,Layered!)rn////////////////rnrn在c++builder 怎么实现上类似功能。rn给个简单例子。rnrnrn
UDP通信——信息互发
UDP2等待接收,后发送 程序运行需要先启动该程序 package com.foot.lesson6; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public class UDP2 { public static void main(S...
两个窗口间传递数据的问题。
两个窗口打开的是在不同web服务器上的两个文档,现在想让子窗口获取父窗口的数据,总是不行。不知道该怎么办才好。:(
两个窗口间数据交互的问题!
问题是这样的:rnrn  一窗口,在点击一链接时弹出一新窗口,在新窗口里双击一记录时(新窗口可查询记录),该记录的相关内容就在父窗口中显示出来,也就是相当于在父窗口中添加了一条记录,此过程子窗口并不关闭,并且始终是获得焦点的!rn  请部这种功能怎么实现呀!
两个窗口间焦点的问题####
有A , B 两个窗口, click A中的某个按键,弹出B窗口, 可以做到一定要做完B这个窗口里面的东西才能返回A窗口吗? 意思就是使用户不能在A或B两个窗口之间切换,打开了B窗口就使这个窗口总是得到焦点,等用户按存盘或返回才可以返回A窗口.最好有代码参考一下.先谢了.
网络编程套接字互发信息
先运行Server再运行Client,实现互发信息
C#怎么在两个窗口间传递参数??
不用公共函数,请教高手
两个窗口间的数据传输
同时打开两个一样的程序,在一个窗口里画线,要在另一个程序的窗口中同时显示出这条直线,用SENDMESSAGE该怎么写啊?我都写了半天了.
c# 窗口间值传递问题
一下是我的代码rnform1中rnpublic int g;rn public int arn rn get return g;rn rnrng在form1中有一些运算。比方说等于4rnrnform2中rnprivate void Form2_Load(object sender, System.EventArgs e)rnrn int i=0;rn Form1 frm1 = new Form1 ();rn int h = frm1.a; //这里的h对form1的a调用rn rn while(i
C#窗口间数据交换问题
我在一个窗口里用datagridview控件显示数据库里的数据,要添加数据时,点添加按钮弹出另一个窗口,我想在数据填完后,点确定按钮,将数据保存在数据库里,并在第一个窗口的datagridview控件里显示出来,该怎么做
C# 窗口间操作的问题
C# form1 中打开了form2 form2 关闭时要更新一个form1的listView的内容。如何实现。
询问idtcpserver与idtcpclient互发信息问题!
客户端代码:rnprocedure Treceivemsg.Execute ;rnbeginrnwhile not terminated dornbeginrnif form1.IdTCPClient1.Connected thenrnbeginrnmsg:=form1.IdTCPClient1.ReadLn;rnform1.memo1.Text:=msg+#10+form1.memo1.text;rnsleep(100)rnend;rnend;rnend;rnrnrn服务器端代码:rnprocedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);rnvarrn i : Integer;rnbeginrn tryrn with IdTCPServer1.Threads.LockList dorn for I := 0 to Count - 1 dorn beginrn AThread := Items[I];rn if AThread.Connection.Socket.Binding.PeerIP = 'hostname' thenrn AThread.Connection.WriteLn('ok');rn end;rn finallyrn IdTCPServer1.Threads.UnlockList;rn end;rnend;rnrnrn现在问题是,服务端可以正常接受每个客户端发来的信息。但当服务器端向客户端发送信息时,客户端接收不到信息???这是怎么回事???盼复。。谢谢
两个服务器如何互发邮件??
现有两个服务器a和b,b服务器设为a的附加服务器,为何我用b服务器中用户rn向a服务器中用户发送邮件后,a服务器中用户不能收到?不知要如何设置,请各位指教,谢谢。
两个Android模拟器互发短信
直接上代码 1.   编辑字符串strings.xml文件内容为: 请输入手机号码: SendMessage 请输入短信内容 发送 TODO 2.编辑layout布局文件main.xml文件内容为: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
stm32f4xx系列不同串口间收发功能实现
不同串口间的收发程序,1,电脑端串口调试助手波特率必须是115200. 2,请使用XCOM/SSCOM串口调试助手,其他串口助手可能控制DTR/RTS导致MCU复位/程序不运行 3,串口输入字符串以回车换行结束. 4,请用USB线连接在USB_232,找到USB转串口后测试本例程. 5,P6的PA9/PA10必须通过跳线帽连接在RXD/TXD上.
c#窗口间传值
c#窗口间传值 这个在网上看到了好多,一搜c#子窗口,父窗口,几乎都是传值的,今天我就简单介绍一下利用构造方法进行传值。 父窗口: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.
TCP与串口间的通信方式。Socket通信
Socket通信的同步、异步方法。串口到客户端的通信、客户端到服务端的通信的多种方法。
51单片机与PC串口间通讯设计与分析
将单片机采集的数据通过串行口传给PC机,由PC机高级语言或数据库语言进行处理,或者实现PC机对远程单片机进行控制。因此,实现单片机与PC机之间的远程通信更具有实际意义。
bootloader与串口间文件传输协议-xmodem/ymodem/zmodem
bootloader与串口间文件传输协议--xmodem/ymodem/zmodemrnx-modemrnhttp://baike.baidu.com/view/398756.htmrnrn自从1978年X调制解调器协议成为实际标准以来,调制解调器达成一致的协议,检查和纠正传输错误的使用一直向着精确、速度和效率方向进展。简单来说,在所有的协议中,数据被切成一定字节大小的"段"并发送到目标调制解调器,调制解调器检查各个段的错误并根据结果和协议返回一个肯定应答信号(ACK)或否定应答信号(NAK),后者通常导致重传输。检查的形式(和检测或者循环码检测)以及发送响应的频率随协议而改变。目前,新的调制解调器使用V.42协议,而早先的协议仍用于较旧的调制解调器。rnrny-modemrnrn自1978年Xmodem协议成为实际标准以来,调制解调器所遵从的以及用来校验和纠正传输错误的协议正向着精确性,快速以及高效方面演进。简单的概括来说:在所有的协议中,数据都将被分成一定字节数大小的“块”,并将其发送到目的调制解调器,由目的调制解调器来校验每个块是否有错误,同时根据结果及协议返回肯定的(ACK)或否定的(NAK)确认,而后者通常会引起重传。校验的类型(和校验或循环冗余校验)以及发送响应的频率随协议的不同而不同。现在,新的调制解调器使用的是V.42协议,但早期的协议仍然在早些时候的调制解调器中使用。rnrnz-modemrnrnZ-modem是一种文件传输协议,从1978年,Xmodem文件传输协议成为一种事实上的标准传输协议以后,Z-modem就致力于提高传输的效率和速度并且可以纠正传输中的错误.简言之就是,将所有的协议数据打包成固定数据位的传输包,然后传输至目的调制解调器,在目的解调器端检测传输包的正确性,并根据传输协议和结果返回一个”正确”或”错误”的应答,而”错误”应答通常要求文件重传.响应的校验(校验码或是循环冗余校验)和频率根据协议的不同而不同.今天,新的调制解调器使用v.42协议,但早期的传输协议仍然被老的调制解调器使用.
编程实现窗口间的信息传递
编程实现窗口间的信息传递,如:rn rn我编一个程序,点这个程序上的一个按钮,实现让QQ面板里的某个好友弹出聊天窗口,也就是说这个程序的信息传递到了QQ程序里。 rn这个消息传递是不通过网络的消息传递。rn请问这要涉及到哪些知识,java,c#都行,有源代码最好,……thank you.
c# 窗口间传递数据
c# 利用委托,两个窗口间传递数据,同样适用于多线程传递数据!
窗口间信息传递完成
养具备Win32 API SDK级别对Windows平台程序编码能力,可以参与Windows应用工程类别的GUI程序开发,对算法策略有容错性表现;提升的、软件设计经验,初步具备面向对象软件设计思想,能针对性的应用事件驱动编程开发应用程序。n丁宋涛老师是南京大学博士,微软中国认证讲师,任江苏微软技术中心、美国大学理事会计算机学科教师,捷帝科技有限公司联合创始人,拥有15年以上程序开发经验。
C# 窗口间的通讯
最近正在学习C#   感觉比易语言好用多了,易语言我真的用吐了,动不动就是模块压根没有底层的东西,就算是有也是高手们反编译的,细节一概不知。老鸟勿喷,发帖纯属站位,以后查找方面窗口间的通讯我用的是委托1.定义一个委托public delegate void F1weituo(int s)//有参数的委托 public event F1weituo F1shijian;//定义一个委托事件
关于不同窗口间信息传递的问题
如果将一个窗口的listview中的选中行的相应变量传递给另一个窗口rn这两个窗口均是动态创建rn举例来说:rn主窗口为:TfrmMainrn窗口1为:TfrmShowrn窗口2为:TfrmDetailrnrn在主窗口中有rnTfrmShow *p = new TfrmShow(this);rnp->Show();rnrn在窗口1中有一个listview,双击一行,在其双击事件中加rnTfrmDetail *pDetail = new TfrmDetail(this)rnpDetail->Show();rnrn现在有两个问题rn1、如何将listview中双击所在行的caption或subitem值传给pDetail窗口rn2、当单击pDetail中的确定按钮,除关闭pDetail之外将所修改的值即时反馈给frmShowrn中的listview显示。(这一点我的方法是将所修改的保存到数据库中,但关健是如何使listview重新加载修改后的数据)rnrn请指教,高分相送rn
进程间通信具体实现代码(两个程序间互发信息)
无名管道#include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <sys/types.h>int main() { int ret; pid_t pid; int count = 0; int fd[2] = {0}; ret = pipe(fd); if(-1 == r
关于两个窗口间传递数据的问题
我有两个页面,a.asp和b.asprn我在a.asp中点击在一个新窗口中打开b.asp文件,我想问的是如果这个时候我关闭了rnb.asp文件的时候,在不刷新a.asp文件所在窗口的同时往里面写上一句话,比如提示说b.asp窗口已经关闭,该如何实现呢,谢谢,很急。
两个窗口间互传参数的问题
接着昨天的问题,我现在把要传的两项作为结构里的变量,然后在要传的窗口w-1的GO按钮的脚本中写入了openwithparm(w-2,*),就是将*参数传给了w-2了吧,然后,在w-2的open 脚本中写入retrieve(*)是不是就可已把*检索显示在w-2的dw-1中了呀!(这个我已经实现了)rn 现在的问题是怎么将在w-2的dw-2中添入的数据传到w-1的dw-1中呢??????rn 我还是沿用的上述方法,我认为只是传递窗口和接收窗口换了一下角色,可是好几天了都还没实现呢,非常焦急!请各位高手指点一二!万分感谢!!rn
两个IE窗口间form对象引用的问题
A窗口用window.open()打开B窗口rnrn现B窗口要将值用javascript写回A窗口中FORM表单的相关字段。rnrn其中rnObj = eval((navigator.appName=="Netscape") ? "top.opener.document.Newlisting" : "top.opener.Newlisting");rnrn此为B窗口中引用A窗口的语句。rnrnObj.LoanAgent.value=formname.myName.value;为B窗口将值传到A窗口的语句。rnrn执行中,系统报错:OBJ对象错误。难道引用方式有错误?rn将top换为parent也不行。rn错误提示选否,则发现值是写了,但未写到A窗口,而是刷新后写到了B窗口,问如何解决此问题。
一个“两个窗口间数据传递”的问题。。。。
[color=#FF0000]第一个问题[/color]rn如下图:rnrnrn[img=http://i.namipan.com/files/7b0f5702f5631fcf11fce63b7f5132f7b7d7c209994a01008912/0/1.jpg][/img]rnrnrn小弟做了两个form3和form4rnform3是一个DataGridView,从数据库中读取的数据rnrnform4有六个textbox,双击后显示form3 rnrn[u]然后小弟想双击DataGridView中的bm列和mc1列中的一列,起两列中的值都会传递到textbox中。。[/u]rn问:最后一步该如何实现???rnrn[color=#FF0000]第二个问题:[/color]rn Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.DoubleClickrn Form3.Show()rn End Subrn Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.DoubleClickrn Form3.Show()rn End Subrn Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.DoubleClickrn Form3.Show()rn End Subrn Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.DoubleClickrn Form3.Show()rn End Subrn Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.DoubleClickrn Form3.Show()rn End Subrn Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.DoubleClickrn Form3.Show()rn End Subrn以上这些代码可不可以用一条循环语句实现??rn该如何写呢??rnrn大哥大姐们帮忙啊。。。。。。。先谢了。。。。。3Q。。。。rnps:小弟的分数不多,还请见谅啊。。。。。
请问关于两个窗口间数据传递的问题
有一个网页是输入信息的网页,包括收件人、地址、邮编等,在这个网页上有一个地址簿按钮,我用window.open新开了一个窗口,上面是地址,每行有一个单选框,我想做一个提交按钮,当用户选择了一行点提交则把这个窗口关闭,然后在以前的父网页上直接填入地址,如何做?rnrn我想用abc.asp?address="beijing..."的方式提交,但是不知道如何让父窗口更新,而不是当前的窗口更新。rnrn或者我想用javascript直接更新父窗口上的文本框的值,不知道如何做?rnrn请高手指导。我刚接触js不久很多简单的问题都不会,麻烦了。
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表