这些代码行导致我的usercontrol在设计器中返回提到的错误 我在这里错过了什么吗?
private void renewContext()
{
if (context != null)
{
context.Dispose();
context = new SM_Context();
}
else
{
context = new SM_Context();
}
}
private void tabPasswords_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
TabControl tab = (TabControl)e.Source;
switch (tab.SelectedIndex)
{
default:
break;
case 0:
btnAP_Reset_Click(null, null);
btnEP_Reset_Click(null, null);
break;
case 1:
btnEP_Reset_Click(null, null);
break;
case 2:
btnAP_Reset_Click(null, null);
headEditPassword_Loaded(null, null);
break;
}
}
}
问题不在于按钮而且我确定,问题仅在于上下文 由于某些安全原因发现标签已更改,不允许我更新其中的上下文 那我该怎么做呢?
答案 0 :(得分:0)
lazyberezovsky建议评论:尝试从事件处理程序(btnAP_Reset_Click
等)中提取要执行的逻辑。它看起来像这样:
private void tabPasswords_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
TabControl tab = (TabControl)e.Source;
switch (tab.SelectedIndex)
{
default:
break;
case 0:
context = new SM_Context();
ResetAp();
ResetEp();
break;
case 1:
context = new SM_Context();
ResetEp();
break;
case 2:
context = new SM_Context();
ResetAp();
WhatEverThisDoes();
break;
}
}
}
private void ResetAp()
{
// ...
}
private void ResetEp()
{
// ...
}
private void WhatEverThisDoes()
{
// ...
}
private void btnAP_Reset(object sender, EventArgs e)
{
ResetAp();
}
private void btnEP_Reset(object sender, EventArgs e)
{
ResetEp();
}
private void headEditPassword_Loaded(object sender, EventArgs e)
{
WhatEverThisDoes();
}
答案 1 :(得分:0)
你应该对那些对这个问题写过一些评论的人有所了解 - 但是如果你被确定使用按钮点击 - 你可以致电button.PerformClick()
它看起来像这样:
btnAP_Reset.PerformClick();
这不会将nullvalues作为参数发送给click事件的实现。