• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

Windows窗体控件库中的用户控件之间传值

weixin_42937796 厦门雅迅 MES工程师  2021-05-19 04:54:55
我做了两个自定义控件:Input_Content.cs与Output_Content.cs
在生成.dll之后,在窗体中应用了这个dll,但在窗体中在Input_Content这个控件下输入一个数回车后,并不能在Output_Content这个控件的文本框中显示。
可以确定的是值有从Input_Content传到Output_Content中。
我怎么弄都不行,高手能帮忙解惑一下吗?
----Input_Content.cs-----
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace Self_ControlLibrary
{
public partial class Input_Content : UserControl
{
public static string shuxingbianliang;//传值属性
public int keypress_flag=0;//按键标识
//public static string jingtaichuanzhipar="";


public Input_Content()
{
InitializeComponent();
}

public void Input_Content_txb_keypress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
shuxingbianliang = Input_Content_txb.Text.ToString();
keypress_flag = 1;
//jingtaichuanzhipar = Input_Content_txb.Text.ToString();
Output_Content optc = new Output_Content();
}

}
//[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public static string SHUXINGBIANLIANG
{
get
{
return shuxingbianliang;
}
set
{
shuxingbianliang = value;
}
}
}
}
--------------
------Output_Content.cs-------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Self_ControlLibrary
{
public partial class Output_Content : UserControl
{
public Output_Content()
{
InitializeComponent();

//MessageBox.Show(Input_Content.jingtaichuanzhipar);
//Output_Content_txb.Text = string .Empty ;
Output_Content_txb.Text = Input_Content.SHUXINGBIANLIANG;
MessageBox.Show(Output_Content_txb.Text);
}
}
}
--------------
-----调用该控件的FORM窗体---------
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 Self_ControlLibrary;

namespace Test_Selfcontrol1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
KeyPreview = true;
}

private void input_Content1_keypress(object sender, KeyPressEventArgs e)
{
output_Content1.Output_Content_txb.Text = Input_Content.SHUXINGBIANLIANG;
}
}
}

...全文
100 点赞 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
taocl2000 05-20
在Input_Content 控件里的文本框回车,并不会触发控件本身的keypress事件,所以在窗体里添加的 input_Content1_keypress,根本就不会被触发,这段代码不会执行。 你可以在Input_Content 里自定义一个事件,在Input_Content_txb_keypress里触发事件,然后在主窗体里添加该事件委托
回复 1
古耕 05-19
你这个控件很神奇,我很想知道你这个Text是怎么传过去的
回复
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2021-05-19 04:54
社区公告

让您成为最强悍的C#开发者