C# 如何使SendMessage用传送多个参数值?

发送窗体有3个textbox,现在想通过发送消息的方法传送3个textbox的文本值到接受窗体,现在只会实现发送textbox1的值,请问其他textbox的值怎么随之一... 发送窗体有3个textbox,现在想通过发送消息的方法传送3个textbox的文本值到接受窗体,现在只会实现发送textbox1的值,请问其他textbox的值怎么随之一起传输; const int WM_COPYDATA = 0x004A; [DllImport("User32.dll", EntryPoint = "SendMessage")] private static extern int SendMessage( int hWnd, // handle to destination window int Msg, // message int wParam, // first message parameter ref COPYDATASTRUCT lParam // second message parameter ); [DllImport("User32.dll", EntryPoint = "FindWindow")] private static extern int FindWindow(string lpClassName, string lpWindowName); private void button2_Click(object sender, EventArgs e) { int WINDOW_HANDLER = FindWindow(null, @"接受窗体"); if (WINDOW_HANDLER == 0) { } else { byte[] sarr = System.Text.Encoding.Default.GetBytes(this.textBox1.Text); int len = sarr.Length; COPYDATASTRUCT cds; cds.dwData = (IntPtr)100; cds.lpData = this.textBox1.Text; cds.cbData = len 1; SendMessage(WINDOW_HANDLER, WM_COPYDATA, 0, ref cds); } } public struct COPYDATASTRUCT { public IntPtr dwData; public int cbData; [MarshalAs(UnmanagedType.LPStr)] public string lpData; } 展开
 我来答
大别山的蜗牛
高粉答主

2016-01-15 · 一只互联网搬运的蜗牛
大别山的蜗牛
采纳数:6928 获赞数:12024

向TA提问 私信TA
展开全部
三个的话是比较麻烦,两个的话还可以

SendMessage(WINDOW_HANDLER, WM_COPYDATA, ref cds, ref cds);// 后面两个参数都可以使用来附带内容。

三个的话,只能是在你的消息结构体public struct COPYDATASTRUCT 再添加几个字段来存储其他的text
秦爱传c5
2012-11-29 · TA获得超过2053个赞
知道小有建树答主
回答量:635
采纳率:50%
帮助的人:320万
展开全部
可以把三个textbox的值使用分隔符合并到一起,在接收窗体拆分,如:
byte[] sarr = System.Text.Encoding.Default.GetBytes(this.textBox1.Text +","+this.textBox2.Text +","+this.textBox3.Text );
接收窗体中把接收的值(假设变量为a)按“,”拆分
string[] aa = a.split(',');
aa就是长度为3的数组了,
aa[0] 代表textbox1的值,aa[1] 代表textbox2的值,aa[2] 代表textbox3的值
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-29
展开全部
struct StringAry
{
public string a;
public string b;
public string c;
}
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hwnd,int b,int c,ref StringAry strary)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式