问题遇到的现象和发生背景
C#全局部变量的问题
遇到的现象和发生背景,请写出第一个错误信息
我很确定我的确认按钮的Text属性为提交,按理说应该把全局变量:结果赋值为真了呀
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
corporateAccountQrCodePaymentInquiryAndOperation中:
#region Value---全局变量---声明一个布尔型的全局变量,并命名为结果,用来保存用户是否选择了保存流水号,并赋值为:假
//声明一个布尔型的全局变量,并命名为结果,用来保存用户是否选择了保存流水号,并赋值为:假
public static bool Value = false;
#endregion
#region confirmButton_Click---事件---此事件是在确认按钮点击后运行
/// <summary>
/// 此事件是在确认按钮点击后运行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void confirmButton_Click(object sender, EventArgs e)
{//根据确认按钮的Text属性来判断确认按钮事件
switch (confirmButton.Text)
{//如果确认按钮的Text属性为:继续查询下一条,执行下面语句块内容
case "继续查询下一条":
//将流水号文本输入框设置为允许用户输入
serialNumberTextBox.ReadOnly = false;
//将流水号文本输入框的内容设置为:空
serialNumberTextBox.Text = "";
//将明细流水号文本输入框设置为允许用户输入
detailedSerialNumberTextBox.ReadOnly = false;
//将明细流水号文本输入框的内容设置为:空
detailedSerialNumberTextBox.Text = "";
//将收入凭证号文本输入框设置为允许用户输入
incomeVouchersNumberTextBox.ReadOnly = false;
//将收入凭证号文本输入框的内容设置为:空
incomeVouchersNumberTextBox.Text = "";
//将应收金额文本输入框设置为允许用户输入
amountCollectedTextBox.ReadOnly = false;
//将应收金额文本输入框的内容设置为:空
amountCollectedTextBox.Text = "";
//将实收金额文本输入框设置为允许用户输入
actualAmountReceivedTextBox.ReadOnly = false;
//实收金额文本输入框的内容设置为:空
actualAmountReceivedTextBox.Text = "";
//将手续费文本输入框设置为允许用户输入
handlingFeesTextBox.ReadOnly = false;
//将手续费文本输入框的内容设置为:空
handlingFeesTextBox.Text = "";
//将流水号标签的Text属性设置为:请输入要查询的流水号:
serialNumberLabel.Text = "请输入要查询的流水号:";
//将明细流水号标签的Text属性设置为:请输入要查的询明细流水号:
detailedSerialNumberLabel.Text = "请输入要查询的明细流水号:";
//将收入凭证号文本输入框设置为不可见
incomeVouchersNumberTextBox.Visible = false;
//将应收金额文本输入框设置为不可见
amountCollectedTextBox.Visible = false;
//将实收金额文本输入框设置为不可见
actualAmountReceivedTextBox.Visible = false;
//将手续费文本输入框设置为不可见
handlingFeesTextBox.Visible = false;
//将收入凭证号标签设置为不可见
incomeVouchersNumberLabel.Visible = false;
//将应收金额标签设置为不可见
amountCollectedLabel.Visible = false;
//将实收金额标签设置为不可见
actualAmountReceivedLabel.Visible = false;
//将手续费标签设置为不可见
handlingFeesLabel.Visible = false;
//将应收金额元s设置为不可见
amountCollectedElementLabel.Visible = false;
//将实收金额元设置为不可见
actualAmountReceivedElementLabel.Visible = false;
//将手续费元标签设置为不可见
handlingFeesElementLabel.Visible = false;
//将确认按钮设置为不可见
confirmButton.Visible = false;
//将修改按钮设置为不可见
modifyButton.Visible = false;
//退出switch语句
break;
//如果确认按钮的Text属性为:提交,执行下面语句块内容
case "提交":
//判断收款凭证号文本框的内容是否为空
if (incomeVouchersNumberTextBox.Text == "")
{//如果收款凭证号文本框的内容为空,弹出一个消息框,内容是:您还没有输入对应的收款凭证号,请填写对应的收款凭证号,窗体名是:温馨提示
MessageBox.Show("您还没有输入对应的收款凭证号,请填写对应的收款凭证号", "温馨提示");
//将焦点移到收款凭证号文本框上面
incomeVouchersNumberTextBox.Focus();
}//继续判断应收金额文本框的内容是否为空
else if (amountCollectedTextBox.Text == "")
{//如果应收金额文本框的内容为空,弹出一个消息框,内容是:您还没有输入对应的应收金额,请填写对应的应收金额,窗体名是:温馨提示
MessageBox.Show("您还没有输入对应的应收金额,请填写对应的应收金额", "温馨提示");
//将焦点移到应收金额文本框上面
amountCollectedTextBox.Focus();
}//继续判断实收金额文本框的内容是否为空
else if (actualAmountReceivedTextBox.Text == "")
{//如果实收金额文本框的内容为空,弹出一个消息框,内容是:您还没有输入对应的实收金额,请填写对应的实收金额,窗体名是:温馨提示
MessageBox.Show("您还没有输入对应的实收金额,请填写对应的实收金额", "温馨提示");
//将焦点移到实收金额文本框上面
actualAmountReceivedTextBox.Focus();
}//继续判断手续费文本框的内容是否为空
else if (handlingFeesTextBox.Text == "")
{//如果手续费文本框的内容为空,弹出一个消息框,内容是:您还没有输入对应的手续费,请填写对应的手续费,窗体名是:温馨提示
MessageBox.Show("您还没有输入对应的手续费,请填写对应的手续费", "温馨提示");
//将焦点移到手续费文本框上面
handlingFeesTextBox.Focus();
}//如果以上都不满足的话
else
{//弹出一个消息框,内容是:您输入的流水号为:---拼接上:换行---拼接上:流水号文本框的内容---拼接上:换行---拼接上:您输入的明细流水号为:---拼接上:换行---拼接上:明细流水号文本框的内容---拼接上:换行---拼接上:您输入的对应的收款凭证号为:---拼接上:换行---拼接上:收入凭证编号文本框的内容---拼接上:换行---拼接上:您输入的对应的应收金额为:---拼接上:换行---拼接上:应收金额文本框的内容---拼接上:换行---拼接上:您输入的对应的实收金额为:---拼接上:换行---拼接上:实收金额文本框的内容---拼接上:换行---拼接上:您输入的对应的手续费为:---拼接上:换行---拼接上:手续费文本框的内容,窗体名是:温馨提示
MessageBox.Show("您输入的流水号为:" + "\r\n" + $"{serialNumberTextBox.Text}" + "\r\n" + "您输入的明细流水号为:" + "\r\n" + $"{detailedSerialNumberTextBox.Text}" + "\r\n" + "您输入的对应的收款凭证号为:" + "\r\n" + $"{incomeVouchersNumberTextBox.Text}" + "\r\n" + "您输入的对应的应收金额为:" + "\r\n" + $"{amountCollectedTextBox.Text}" + "\r\n" + "您输入的对应的实收金额为:" + "\r\n" + $"{actualAmountReceivedTextBox.Text}" + "\r\n" + "您输入的对应的手续费为:" + "\r\n" + $"{handlingFeesTextBox.Text}" + "\r\n", "温馨提示");
//声明一个高精度小数型局部变量,并命名为:应收金额,并赋值为关于金额的类中的将字符串变量转换成高精度小数型变量方法的返回值,方法参数是:应收金额文本框的内容
decimal amountCollected = RegardingTheAmount.ConvertStringToDecimal(amountCollectedTextBox.Text);
//声明一个高精度小数型局部变量,并命名为:实收金额,并赋值为关于金额的类中的将字符串变量转换成高精度小数型变量方法的返回值,方法参数是:实收金额文本框的内容
decimal actualAmountReceived = RegardingTheAmount.ConvertStringToDecimal(actualAmountReceivedTextBox.Text);
//声明一个高精度小数型局部变量,并命名为:手续费,并赋值为关于金额的类中的将字符串变量转换成高精度小数型变量方法的返回值,方法参数是:手续费文本框的内容
decimal handlingFees = RegardingTheAmount.ConvertStringToDecimal(handlingFeesTextBox.Text);
//声明一个新的对话框返回结果枚举变量,命名为结果,并赋值为:打开一个带确认、取消的消息框,内容是:确定输入无误,保存此条记录吗,窗体名是:温馨提示
DialogResult selecteds = MessageBox.Show("确定输入无误,保存此条记录吗?", "温馨提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
// 判断用户点击的是否是确认按钮
if (selecteds == DialogResult.OK)
{//判断用户输入的明细流水号是否已经存在
if (CorporateQRCodePaymentData.Check(detailedSerialNumberTextBox.Text))
{//将全局变量:结果,的值赋值为:真
Value = true;
//如果用户输入的明细流水号已经存在,调用自定义变量:对公账户二维码收款数据中:通过明细流水号,修改对应的流水号方法,其中方法的参数一是:明细流水号文本输入框的内容---方法的参数二是:收入凭证编号文本输入框的内容
CorporateQRCodePaymentData.ModifyIncomeVouchersNumber(detailedSerialNumberTextBox.Text, incomeVouchersNumberTextBox.Text);
//调用自定义变量:对公账户二维码收款数据中:通过明细流水号,修改对应的流水号方法,其中方法的参数一是:明细流水号文本输入框的内容---方法的参数二是:应收金额文本输入框的内容
CorporateQRCodePaymentData.ModifyAmountCollected(detailedSerialNumberTextBox.Text, amountCollected);
//调用自定义变量:对公账户二维码收款数据中:通过明细流水号,修改对应的流水号方法,其中方法的参数一是:明细流水号文本输入框的内容---方法的参数二是:实收金额文本输入框的内容
CorporateQRCodePaymentData.ModifyActualAmountReceived(detailedSerialNumberTextBox.Text, actualAmountReceived);
//调用自定义变量:对公账户二维码收款数据中:通过明细流水号,修改对应的流水号方法,其中方法的参数一是:明细流水号文本输入框的内容---方法的参数二是:手续费文本输入框的内容
CorporateQRCodePaymentData.ModifyHandlingFees(detailedSerialNumberTextBox.Text, handlingFees);
//将局部变量:记账凭证编号,的值,重新赋值为:调用:自定义变量-- - 对公账户二维码收款数据,中的:通过:顾客输入的流水号,获取:记账凭证编号,方法,其中方法的参数一是:流水号文本输入框的内容,的值
AccountingVoucherNumber = CorporateQRCodePaymentData.ByTheSerialNumberEnteredByTheCustomerGetAccountingVoucherNumber(serialNumberTextBox.Text);
//弹出一个消息框,内容是:修改对公账户二维码收款数据成功!!!,窗体名是:温馨提示
MessageBox.Show("修改对公账户二维码收款数据成功!!!", "温馨提示");
//将修改按钮单击一次
modifyButton.PerformClick();
}//如果用户输入的明细流水号不存在
else
{//将全局变量:结果,的值赋值为:真
Value = true;
//将用户选择的了内容添加进:自定义变量---对公账户二维码收款数据中
CorporateQRCodePaymentData.Add(serialNumberTextBox.Text, incomeVouchersNumberTextBox.Text, amountCollected, actualAmountReceived, handlingFees, detailedSerialNumberTextBox.Text);
//将局部变量:记账凭证编号,的值,重新赋值为:调用:自定义变量-- - 对公账户二维码收款数据,中的:通过:顾客输入的流水号,获取:记账凭证编号,方法,其中方法的参数一是:流水号文本输入框的内容,的值
AccountingVoucherNumber = CorporateQRCodePaymentData.ByTheSerialNumberEnteredByTheCustomerGetAccountingVoucherNumber(serialNumberTextBox.Text);
//弹出一个消息框,内容是:保存对公账户二维码收款数据成功!!!,窗体名是:温馨提示
MessageBox.Show("保存对公账户二维码收款数据成功!!!", "温馨提示");
//将修改按钮单击一次
modifyButton.PerformClick();
}
}
}
//退出switch语句
break;
// 如果上面的条件都不满足
default:
//主动抛出异常不在执行事件,具体原因是:程序异常
throw new ProgramException();
}
}
#endregion
//判断:收款账号组合框,的现行选中项,是否:为:对公账户二维码收款
if (receivingAccountComboBox.SelectedItem == "对公账户二维码收款")
{//如果:收款账号组合框,的现行选中项,为:对公账户二维码收款,实例化一个对公账户二维码收款查询和操作窗体,并命名为:对公账户二维码收款查询和操作窗体
corporateAccountQrCodePaymentInquiryAndOperation corporateAccountQrCodePaymentInquiryAndOperation = new corporateAccountQrCodePaymentInquiryAndOperation();
//将:局部变量对公账户二维码收款查询和操作窗体,的:全局变量:收入凭证编号,的值设置为:当前类中的:全局变量:收入凭证编号,的值
corporateAccountQrCodePaymentInquiryAndOperation.IncomeVoucherNumber = IncomeVoucherNumber;
//将局部变量对公账户二维码收款查询和操作窗体的窗体控件设置为不显示
corporateAccountQrCodePaymentInquiryAndOperation.ControlBox = false;
//将局部变量对公账户二维码收款查询和操作窗体的任务栏显示设置为不显示
corporateAccountQrCodePaymentInquiryAndOperation.ShowInTaskbar = false;
//将局部变量对公账户二维码收款查询和操作窗体的最大化设置为不允许最大化
corporateAccountQrCodePaymentInquiryAndOperation.MaximizeBox = false;
//将局部变量对公账户二维码收款查询和操作窗体的最小化设置为不允许最小化
corporateAccountQrCodePaymentInquiryAndOperation.MinimizeBox = false;
//为局部变量对公账户二维码收款查询和操作窗体的确认按钮添加一个点击事件
corporateAccountQrCodePaymentInquiryAndOperation.confirmButton.Click += (sender, args) =>
{//判断局部变量对公账户二维码收款查询和操作窗体中结果的值是否为真
if (corporateAccountQrCodePaymentInquiryAndOperation.Value)---注释掉这句,关闭窗体代码就起作用
{//如果局部变量对公账户二维码收款查询和操作窗体中结果的值为真,将局部变量对公账户二维码收款查询和操作窗体关闭
corporateAccountQrCodePaymentInquiryAndOperation.Close();-----不起作用
}
};//将局部变量对公账户二维码收款查询和操作窗体显示出来
corporateAccountQrCodePaymentInquiryAndOperation.ShowDialog();
//将:类变量:记账凭证号,的值重新赋值为:局部变量:对公账户二维码收款查询和操作窗体,中的:记账凭证号,的值
AccountingVoucherNumber = corporateAccountQrCodePaymentInquiryAndOperation.AccountingVoucherNumber;
}
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
尽量不改动窗体的代码,达到窗体内不关闭,外部调用满足:结果为真时候关闭