MessageBox.ShowDialog 没有返回值

huangdancs 2014-03-18 02:21:15
请教一个问题,下面的程序是实现一个Retry和Skip逻辑的代码块。

现在, string response = msgBox.ShowDialog(Context.UIViewName);在do循环里第一次执行的时候可以得到值,但之后就无法得到值(一直没有反应)。是什么原因?怎么解决呢?


do
{
try
{
returnData = XXX; // 一个业务函数

if (!returnData)
{
throw new Exception(string.Format("XXX");
}


Logger.Info("Done executing activity " + ActivityName);
}
catch (Exception e)
{
if (promptRetryOnFailure)
{
// promptRetryOnFailure == true, retrunData == false

string errorMessage = string.Format("XXX“);
var msgBox = new MessageBox("XXX", errorMessage, MessageBoxIcons.Question, MessageBoxButtons.RetryCancel);
msgBox.RemoveButton("Cancel");
msgBox.AddButton("Skip");

string response = msgBox.ShowDialog(Context.UIViewName);
if (response == DialogResult.Retry)
{
//choose "retry", retry the transaction
retry = true;
}
}
else
{
// promptRetryOnFailure == false

Logger.Info("XXXXX" + ActivityName);
}
}
} while (retry);
}
}
...全文
174 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
霜寒月冷 2014-03-18
  • 打赏
  • 举报
回复
1.确认你的程序代码是否运行到catch里面去了? 2.Context.UIViewName 这要不要 Context.UIViewName.ToString()?
BenBenBears 2014-03-18
  • 打赏
  • 举报
回复
因为第一次执行response == DialogResult.Retry返回的结果是false。
宝_爸 2014-03-18
  • 打赏
  • 举报
回复
单步跟踪下,看看跑哪去了。
宝_爸 2014-03-18
  • 打赏
  • 举报
回复
之后的对话框弹出了吗?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧