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#标签从私有方法(工具箱值)接收信息的主要内容,如果未能解决你的问题,请参考以下文章

一个基于C#编写的基础网络信息检测工具

当前控件的工具提示中的 WPF C# 状态栏标签内容

C#中Windows窗体工具栏

请教:C# WebService调用Java WebService(返回Json类型数据) ,为啥接收为null

私有CA和证书

C# 方法定义,return的使用方法