- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在多个部分类文件中定义的 Windows 窗体。在其中一个文件 (xxx.Query.cs) 中,我为 DataGridView 定义了所有事件处理程序。但是,有时,Visual Studio 决定要在窗体 (xxx.cs) 的主文件中为其中四个事件处理程序创建 stub 。我最终得到了四个错误,这些错误类似于“Type 'xxx' already defines a member called 'dataGridView1_ColumnHeaderMouseClick' with the same parameter types”。
如何让 Visual Studio 停止尝试为这些创建 stub ?这是最令人烦恼的。
最佳答案
我今天在将一个大型(遗留)表单拆分为一个部分类并向其添加新部分后遇到了这个问题。尽管这是一个老问题,但我发布了原始问题的许多答案都是不正确的。具体来说,他们中的许多人声称 Visual Studio 无法在不双击的情况下生成这些。我想确认 VS 确实在某些情况下会这样做。
在我的特殊情况下,我向选项卡控件添加了一个新选项卡,并将新选项卡事件和代码放在新类中。最初,我将此代码(包括事件)放在主窗体的末尾,这可能与问题有关。移动代码后,如果我将控件添加到主窗体的任何部分(例如,一个单独的选项卡),VS 会为我在新的部分类中拥有的 3 个事件生成空事件处理程序,尽管在这个中有完整的事件处理程序类(class)。
我目前唯一的解决方案是在出现问题时从我的主窗体代码底部删除空处理程序。解决方案清理不会删除这些空白处理程序。
因为所有 3 个每次都一致地生成,并且因为当我添加测试控件时它们位于隐藏在主窗体后面的选项卡上(所以没有机会双击,当然没有机会双击所有 3),我可以自信地说这是一个 Visual Studio 错误(在我的例子中是 VS 2013)。
24/9/15 更新:在厌倦了删除处理程序之后,我进行了更多搜索,并找到了解决该问题的方法。这是来自 MS 论坛 (https://social.msdn.microsoft.com/Forums/windows/en-US/79910eaa-84e7-472d-95ee-4b8ddfbf99f0/multiple-partial-class-files-cause-problems-with-forms-designer?forum=winforms&prof=required) 的 mustiy 解决方案的文本。这个修复对我有用,虽然点击创建事件仍然在错误的类中创建它们,但是在移动它们之后,它们可以正常工作。它还可以防止创建无效的事件处理程序。
i had same problem and came accross your post, but i wasn't sattisfied. It had to be a solution for this because VS IDE does it.
Here is the solution :
Open the .csproj project file with notepad and let's say for a Form1.cs file you will see a configuration like
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
If you create a new file called Form1Events.cs and put another partial class of Form1 and move the events to the new partial class. In the new .csproj file you the new file like this below
<Compile Include="Form1Events.cs">
<SubType>Form</SubType>
</Compile>
Something is missing you have to tell the VS IDE that this Form1Events.cs file is dependent to Form1.cs. As the IDE do this for Form1.Designer.cs file make the same with Form1Events.cs and put a "DependentUpon" tag into Form1Events.cs. Last the .csproj file look like this below
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Form1Events.cs">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Form</SubType>
</Compile>
And if you save the .csproj file the IDE reloads the project and on the Solution exlorer tree you see that the new partial class is put below Form1.cs file. And if you open the designer and double click a previous decalred and moved event it will navigate to the new file.
关于c# - Visual Studio 不断创建已定义的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10452423/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!