.net 如何让一个窗体在被单击时被它的“子窗体“更新

ekqde3dh  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(104)

所以我得到了一个基本的游戏,有2个窗口,一个是主游戏,一个是设置菜单,它们都是窗体的子类,但是eventhandler f2.MouseClick(第二个窗体)只在开始时触发,当我打开Class 2窗体并用鼠标移动时,它永远不会工作。我在事件处理器上做错了什么吗?

Class1: Form{
public Class2 f2 = new Class2();

public class1(){
f2.MouseClick += Changesettings;
}



public {Some eventhandler for mouseclick}
}
Class2: Form{

}

我试着把它链接到像油漆和做它本地,但没有一个会触发从第二个形式,所以我认为它不会触发在所有,因为我不知道任何其他方式触发类1更新时,点击一个“子类”,因为你不能调用静态的其他方式。

xzlaal3s

xzlaal3s1#

ChildClass中使用eventhandler并调用它触发child.eventargs += trigger;ParentClass操作解决了这个问题。

public class ParentClass
{
    public void ShowChildClass()
    {
        var child = new ChildClass();
        
        child.OnChildButtonClicked += ParentEventHandler;
        
        child.Show();
    }
    
    public void ParentEventHandler(object sender, EventArgs e)
    {
        Console.WriteLine("Invoked!");
    }
}

public class ChildClass
{
    public event EventHandler OnChildButtonClicked;
    
    public void Show() { }
    
    public void OnSomeKind_OfEvent()
    {
        OnChildButtonClicked?.Invoke(this, EventArgs.Empty);
    }
}

从我的Reddit问题的答案复制sjetware上的r/csharp

相关问题