我有一个Windows窗体应用程序.我在这个应用程序中有几个表单(主表单和几个专门的表单),并且在一个表单上,单击事件不会触发我的任何按钮.
并不是处理程序中的代码被破坏了.这可以通过单击按钮时永远不会到达处理程序第一行的断点来确定.
其他事件正在发挥作用(我正在使用CheckedChanged
此表单上的事件并且它们正在运行).
我的团队成员已经审核过,也无法发现问题.
这是我的代码的简化视图:
Designer生成代码
partial class MyForm
{
private System.Windows.Forms.Button addButton;
private void InitalizeComponent()
{
this.addButton = new System.Windows.Forms.Button();
this.addButton.Name = "addButton";
// Drawing statements here
this.addButton.Click += new System.EventHandler(this.addButton_Click);
this.Controls.Add(this.addButton);
}
}
Run Code Online (Sandbox Code Playgroud)
我的守则
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void addButton_Click(object sender, EventArgs e)
{
MessageBox.Show("The debugger is not reaching a break point on this line");
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:测试的其他信息
我的表单中有几个数据绑定下拉列表.我发现如果我先在下拉框中进行选择,则只能触发click事件.
如果我没有选择,按钮处理程序中的断点将触发.否则它没有.这些下拉列表中未注册任何事件.
我正在支持使用Microsoft.ReportViewer库的旧的ASP.NET Intranet Web应用程序.
运行时,报告将引发以下错误:
报告处理期间发生错误.
分组'list1_Details_Group'的Sort表达式包含错误:
请求类型的权限:'System.Security.Permissions.SecurityPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'失败.
我的所有研究都表明,这个问题源于应用程序没有必要的信任级别(所有相关的堆栈溢出问题都通过将信任级别设置为完全来解决),但是我的web配置定义了信任级别,所以我完全丢失了至于为什么会出现这种错误.
出于安全原因,我无法显示所有的Web配置,但大部分都可以在这里找到:http://pastebin.com/GdJhHDhH任何遗漏都被评论或存根.
将应用程序从窗体身份验证迁移到Windows身份验证后出现此问题.不一定相关,但很难忽视巧合.
这个问题在我的所有环境中都会发生:Local,Dev和Prod(缠绕prod回到Forms身份验证使这个工作).
该应用程序是用.Net 4编写的,C#
报告代码与Web应用程序位于不同的程序集中,Web应用程序引用报告程序集.
Web应用程序成功从与报告无关的应用程序的其他区域中的数据库中检索其他数据.
我对此有所了解,任何指导都会很棒.
尝试删除list1_Details_Group.完成此操作后,报告的另一部分将抛出相同的异常.
尝试使用Windows身份验证进行模拟.应用程序继续以相同的方式工作,同时在报告中抛出相同的异常.
强烈尝试命名应用程序中使用的所有程序集.否应用程序继续以相同的方式工作,同时在报告中抛出相同的异常.
尝试在IIS中使用"经典"托管管道.
我在Angular 2中使用辅助导航路线(有时称为辅助路线)来管理我的左右侧边栏中显示的内容.对我来说这似乎是正确的方法,因为我希望侧边栏在整个网站中都是持久的,但我还希望能够在需要时(通过执行辅助导航)从组件内部更改其内容.
例如,当用户查看文章并以编辑器身份登录时,我可能希望在左侧边栏上添加"编辑"按钮.我可以通过在我的"ArticleDetailComponent"中执行辅助导航来完成此操作.
但是,我不希望侧边栏的路由显示在URL中.它会向用户泄漏实现细节,并且会混淆原本简单,令人难忘的URL,同时不会给用户增加任何价值.
那么,如何从URL隐藏辅助路由?或者我是在问错误的问题,而我的方法基本上是以某种方式解决的?
这可以通过在执行辅助导航时将第二对象传递到导航命令来实现,例如
this._router.navigate(
[{ outlets: { 'left-column': ['home'] }}],
{ skipLocationChange: true }
);
Run Code Online (Sandbox Code Playgroud)
但是,这种方法存在一个缺陷,我尚未解决.当主要导航发生时(无论如何),当主导航更改位置时,辅助路由将添加到URL.这可能是我需要向Angular团队报告的问题.
.net ×2
c# ×2
angular ×1
asp.net ×1
data-binding ×1
permissions ×1
reportviewer ×1
winforms ×1