gpt4 book ai didi

c# - 一定秒数后出现空引用异常

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:37 24 4
gpt4 key购买 nike

我在注释中指出的行中遇到空引用异常。有谁知道为什么会这样?

var form = Form.ActiveForm as Form1;
var doSave = MessageBox.Show("Would you like to save this measurement?",
"Save Measurement",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);

if (doSave == DialogResult.Yes) // User wants to save the current measurement.
{
curName = ShowDialog("Measurement Name", "Save Measurement");
// ERROR HERE ****
int ret = form.databaseClass.GetFirstSoundReadyTestOccurrence(form.testNumber.Text);

最佳答案

我敢打赌这是 Form.ActiveForm 不是 Form1 类型的情况。

这应该很容易重现。在进入此代码之前,只需确保您的事件表单不是 Form1 类型。换句话说...确保运行此代码时其他一些表单处于事件状态。

下面的编辑将在发生这种情况时修复,但您确实需要一种更可靠的方式来获取表单。在不了解您的设计的情况下,很难推荐更好的获取表单的方法。

var form = Form.ActiveForm as Form1;
if (form != null)
{
var doSave = MessageBox.Show("Would you like to save this measurement?",
"Save Measurement",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);

if (doSave == DialogResult.Yes) // User wants to save the current measurement.
{
curName = ShowDialog("Measurement Name", "Save Measurement");
// ERROR HERE ****
int ret = form.databaseClass.GetFirstSoundReadyTestOccurrence(form.testNumber.Text);
}
}

关于c# - 一定秒数后出现空引用异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17686843/

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