代码之家  ›  专栏  ›  技术社区  ›  Luiscencio

在vs 2008中打开文件时如何显示消息?

  •  0
  • Luiscencio  · 技术社区  · 15 年前

    我想在打开某个文件时显示一个警告,如何才能做到这一点? 例如,如果我打开program.cs,会弹出一个警告对话框:“如果你编辑这个,你会死的。”

    2 回复  |  直到 15 年前
        1
  •  1
  •   Simon Gillbee    15 年前

    几个选项:

    • 存储文件版本控制(告诉我您正在使用版本控制…求求你!)并将其锁定,或者使用版本控制系统仅允许某些用户进行更改。

    • 如果这是.NET代码,您可以将其放在带有注释等的区域中,并使临时浏览器真正了解您需要什么。

    • 同样,如果这是.NET,并且您希望隔离此代码,则可以使用部分类并将有问题的代码移动到完全不同的源文件(类似于设计器对窗体/控件/资源的操作)。这样,您的“公共”代码都在同一位置,而您的“私有/有问题”代码在自己的文件中,您可以使用版本控制进行保护(请参见上文)。

    • 如果您的空闲时间超过了您应该有的时间,那么编写一个自定义的Visual Studio附加组件将是一个很好的解决方案,但是您需要认真考虑与此相关的可用性问题。

      您不希望在任何时候打开此文件时简单地抛出消息框。那是邪恶的…我告诉你邪恶!你永远不知道文件将如何打开。如果是多文件文本搜索呢?突然间,您将用这些恼人的消息框中断IDE中的自动操作。

      相反,你需要某种解决方案,适当的时候在你的脸上,不适当的时候完全在你的脸上。我建议在受影响的IDE文本中进行某种呈现更改,或者可能出现浮动窗口(类似于msn messenger通知窗口),可能在超时后自动消失。

      我强烈建议你看看 DXCore Developer Express . 这是一个支持VS2005/2008/2010的免费扩展框架。它有很多方法来创建工具窗口、弹出窗口、执行动画和在文本窗口中绘制内容、为光标或显示视图位于特定代码段时执行条件事件通知。简而言之,它有你想要的基础。

      如果我将此作为附加组件编写,我会这样做:

      • 用区域文本中的特定文本标记围绕有问题的代码。类似于“区域通知开发者——不要更改此代码。这是龙的。在你触摸这个密码之前给西蒙打电话!”
      • 使用dxcore创建一个Visual Studio加载项,该加载项查找带有此特定标记的区域标记(一个以“通知开发人员”作为主要文本的区域)。
      • 找到后,这些区域将以一种特殊的方式进行渲染:在区域周围放置一个边框,进行半透明填充以“淡出”区域,将消息放在区域的中间(或区域可见部分的中间)。
      • 允许使用忽略消息(“x”位于角落),这将导致不透明淡入淡出也被忽略。

    这将允许冒犯性代码仅在它实际可见时出现在您的脸上,否则不会出现。

    Developer Express使用其免费的dxcore框架创建 CodeRush Refactor Pro! 这两种方法都在源文件中添加了大量图形化的eye candy(例如,coderush 更改区域已经呈现的方式)。使用dxcore,您可以免费为较新的IDE版本提供未来校对。很好。

    但在某种程度上,我不得不问,当一条评论或其他方法足够好时,为什么要花这么多精力。这开始对编码人员进行一点微观管理。如果你有一个不信任的开发人员来阅读评论并负责任地完成他们的工作,你为什么雇佣他们?您会相信他们运行您的附加组件吗?你会相信他们做什么吗?我觉得这太过分了。添加评论…可能将源文件拆分为多个文件…一定要使用版本控制。别傻了。没人喜欢混蛋。

        2
  •  2
  •   Dave Swersky    15 年前

    您有两个扩展Visual Studio的选项:加载项和Visual Studio包。

    外接程序相对容易实现,并且没有任何复杂的安装要求。

    软件包功能更强,但需要软件包加载密钥,您必须从Microsoft站点请求该密钥。

    听起来,如果你只想提出一个对话,你可以通过一个加载项。查看ivsuishell接口和uishell.showMessageBox()方法,通过vs shell引发对话框。 Here's 关于创建外接程序的教程。