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

weixin_42937796 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;
}
}
}

...全文
161 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
taocl2000 2021-05-20
  • 打赏
  • 举报
回复 1
在Input_Content 控件里的文本框回车,并不会触发控件本身的keypress事件,所以在窗体里添加的 input_Content1_keypress,根本就不会被触发,这段代码不会执行。 你可以在Input_Content 里自定义一个事件,在Input_Content_txb_keypress里触发事件,然后在主窗体里添加该事件委托
石岩Maple 2021-05-19
  • 打赏
  • 举报
回复
你这个控件很神奇,我很想知道你这个Text是怎么传过去的

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧