c#标签从私有方法(工具箱值)接收信息
Posted
技术标签:
【中文标题】c#标签从私有方法(工具箱值)接收信息【英文标题】:c# label to receive information from private method(toolbox value) 【发布时间】:2018-08-05 05:46:30 【问题描述】:我创建了一个新表单,其中有一个工具箱。当我按下该表单中的按钮时,它应该将用户输入的信息(工具箱值)传递到主表单,其中应该在标签中显示该信息。
由于从工具箱创建该用户名的方法是私有的,我无法从任何其他方式访问它。将其公开似乎没有什么不同,get,set 也没有(至少从我一直尝试的方式来看)。
可能有助于解释的图片:
代码(在其中创建用户):
namespace WindowsFormsApplication3
public partial class Newuserform : Form
public Newuserform()
InitializeComponent();
private void buttonCreateUser_Click(object sender, EventArgs e)
string uname = textboxUsername.ToString();
public void Unamecreate()
Form1 代码(接收创建的用户):
namespace WindowsFormsApplication3
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
Application.Exit();
private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
Aboutform form2 = new Aboutform();
form2.Show();
private void newLocalUserToolStripMenuItem_Click(object sender, EventArgs e)
Newuserform formnewuser = new Newuserform();
formnewuser.Show();
【问题讨论】:
【参考方案1】:你有很多选择。
一种方法是创建一个事件并在主窗体中处理它。
public partial class Newuserform : Form
//the public property
public event EventHandler<string> UnameChanged;
public Newuserform()
InitializeComponent();
private void buttonCreateUser_Click(object sender, EventArgs e)
if (UnameChanged != null)
UnameChanged(textboxUsername.ToString()); //fire the event
现在,要“处理”事件,请在主窗体中执行以下操作:
private void newLocalUserToolStripMenuItem_Click(object sender, EventArgs e)
Newuserform formnewuser = new Newuserform();
formnewuser.UnameChanged += Handler;
formnewuser.Show();
private void Handler (object sender, string Uname)
// do something wit the new Uname.
注意:重新创建 Newuserform 需要清理以前附加的资源。
【讨论】:
以上是关于c#标签从私有方法(工具箱值)接收信息的主要内容,如果未能解决你的问题,请参考以下文章