我希望在第一次加载表单时运行代码段

时间:2017-08-23 17:01:28

标签: c# windows-forms-designer

我有一系列Windows窗体,就像基于Web的应用程序一样。我有一个表格,将标签的文本设置为随机数,我试图将该数字传递给其他表单,并确保它在任何地方都更新。我没有能力创建数据库,所以这就是我这样做的原因。

我遇到的问题是,当我在应用程序中移动并使用按钮将我带回到将获得随机数的第一页时,代码会再次运行并且数字会发生变化。

private void goToPage2_Click(object sender, EventArgs e) 
{
    this.Hide();
    var form3 = new FORM3();
    form3.ShowDialog();
    this.Close();
}

我已经注释掉了Close并尝试了Show而不是ShowDialog,但应用程序崩溃了。

基本上我只需要弄清楚如何检测表单是否已经在应用程序生命周期中创建过一次,并且只有随机代码运行那个时间而不是每次我通过页面返回页面只是使用我想要使用的应用程序。

我正在使用Windows Forms来节省时间,因为它仅用于演示目的,并且不想处理CSS和Bootstrap。

感谢。

2 个答案:

答案 0 :(得分:1)

在表格Shown event handler中运行。

从链接:

  

只有在第一次显示表单时才会显示“已显示”事件

Load event handler

从该链接:

  

在首次显示表单之前发生。

取决于您希望它执行的确切时间。

如果您每次都在创建新表单并且只是想知道在应用程序执行过程中是否发生了某些事情 - 请设置<div id ="id1"> </div>变量,在执行该代码时设置它,并在此之前检查它。类似的东西:

public static bool

答案 1 :(得分:0)

如果无法在数据库中存储变量并需要在Windows窗体中传递这些值,只需向项目中添加一个新类。

根据需要为课程命名。我将我的类数据命名为静态类。

然后添加get和set方法。

public static int someNum
{
    get; set;
} = 0;

public static string someString
{
    get; set;
} = "";

所以,现在你可以将这些值设置为data.someNum或data.someString,而不必检查这个或那个。比我在这里遇到的很多例子快得多,代码也少得多。

我要感谢Ispiro在这里教育我。谢谢你。