gpt4 book ai didi

c# - 并非方法中的所有代码都被执行

转载 作者:太空宇宙 更新时间:2023-11-03 18:31:02 25 4
gpt4 key购买 nike

我有一个问题想解决。

Form1 中,我尝试运行 Form2 中的一些方法。

例子:

表格 1:

 `Form2.SomeMethod(name);`

表格 2

这是我从 Form1 调用的方法,在这个方法中我调用了其他应该做某事的方法。

public static void SomeMethod(string name)
{
new Form2().method2(name);
}

这种方法并没有发挥应有的作用

public void method2(string naziv)
{
MessageBox.Show("test? "+naziv); //only for test. This works

Button x = new Button();
x.Margin = new Thickness(50, 20, 0, 0);
x.VerticalAlignment = VerticalAlignment.Top;
x.HorizontalAlignment = HorizontalAlignment.Left;
x.MinHeight = 50;
x.MinWidth = 100;
x.MaxWidth = 150;
x.FontSize = 20;
x.Content = naziv;
x.Name = "naziv";

gridmiza.Children.Add(x);
lbltest1.Content = "test? "+naziv; //only for test
MessageBox.Show("test2?"); //only for test and this also works works
}

我的问题是隐藏在两个 MessageBox 之间。第一个 MessageBox 执行,然后是最后一个。但是在这两个 MessageBoxes 之间没有任何反应。知道我做错了什么吗?我希望这个问题是合理的,因为我的英语不好,而且我什至不明白我的问题。

最佳答案

在这一行中:

new Form2().method2(name);

您正在创建一个新的 Form2 实例,调用该方法,然后立即丢弃该实例,因为您没有将它分配给任何东西。这可能不是您的本意。我猜你要么想在现有实例上调用该方法,创建一个新实例并从该方法返回它。

我猜您已经在某处创建了一个 Form2 实例。您应该调用该实例的方法,方法是传入该实例,或者删除 static 并使用 Form1 的实例成员:

public static void SomeMethod(Form2 form, string name)
{
form.method2(name);
}

或者:

public void SomeMethod(string name)
{
form2.method2(name); // assuming Form1 has a member for Form2
}

关于c# - 并非方法中的所有代码都被执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com