如何将int值从表单发送到usercontrol

时间:2018-03-25 11:46:04

标签: c# winforms

我正在开发一款使用多种布局的游戏。为了制作这些布局,我使用用户控件将它们向前移动并将它们发送到后面。现在我处于一个阶段,我必须将所有收集的数据(硬度,类型等)发送到用户控件,其中所有其余工作都已完成。我坚持将int值发送到我的用户控件来完成所有工作。我想过用eventhandler发送它们,但是EventHandler似乎也没有认识到我的int值

简而言之,我想将表单中的Int值传递给用户控件

        public void liitmine1(object sender, EventArgs e)
    {
        /*event*/
        uCraskus1.BringToFront();
        int What = 1;

    }
    public void kumme(object sender, EventArgs e)
    {
        uCmehanism1.BringToFront();
        int Between = 1;
    }
    public event EventHandler KummeClick; /*Sends info to mechanism*/
    private void KummeNupp(object sender, EventArgs e)
    {
        if(What == 1) /*The name'what' does not exist in current context error*/
        if (this.KummeClick != null)
            this.KummeClick(this, e);
    }

if (this.KummeClick != null)只是为了测试,不介意是否有任何错误

1 个答案:

答案 0 :(得分:0)

您可以创建自己的EventArgs类型,如下所示:

public class KummeClickEventArgs : EventArgs
    {
        public int MyProperty { get; set; }
    }

然后使用它(假设kumme方法是订阅者之一):

public void kumme(object sender, KummeClickEventArgs e)
    {
        //here is your logic like:
        //int test = e.MyProperty;

        uCmehanism1.BringToFront();
        int Between = 1;
    }
    public event EventHandler<KummeClickEventArgs> KummeClick; /*Sends info to mechanism*/
    private void KummeNupp(object sender, EventArgs e)
    {
        if(What == 1) /*The name'what' does not exist in current context error*/
        if (this.KummeClick != null)
        {
            var eventArgs = new KummeClickEventArgs
            {
                MyProperty = 3
            };
            this.KummeClick(this, eventArgs);
        }
    }