【问题标题】:interopservices v/s normal coding互操作服务与正常编码
【发布时间】:2012-11-06 07:39:21
【问题描述】:

我正在尝试制作一个可以调整大小和拖动的无边框表单。
好吧,我有两个教程可以做到这一点link1link2(还有更多)。
第一个链接用小代码简单引用System.Runtime.InteropServices
第二个链接用大代码调用MouseUpMouseDownMouseMove等事件。

我尝试了两个对我来说没问题的代码。由于我不擅长 C#,因此我无法根据性能确定哪个好。请建议我应该去哪一个..

就个人而言,我怀疑使用 Interopservices(因为我对此一无所知)。

【问题讨论】:

    标签: c# .net winforms c#-4.0


    【解决方案1】:

    link1 中的代码使用 Windows 原生的库,并且不能在其他平台上运行。它甚至可能不适用于未来版本的 Windows。

    但由于操作系统会控制您的表单,因此使用托管解决方案需要更多代码来完成相同的操作,如您在链接 2 中所见。

    在这两种情况下,您都可以以基本形式实现解决方案并继承它。性能方面,link1 会更快,因为它不处理 MouseMove 事件。但我不知道您是否会注意到性能差异。

    【讨论】:

    • 感谢您的回复。所以你建议我选择link2,因为link1可能不会在未来......
    • 可以,只要您没有遇到性能问题。它也更灵活,因为您可以影响哪个控件允许拖动(在 imo 中选择逗号分隔的字符串有点差)。
    • +1 你有任何链接,我可以从中了解更多信息(如果你有的话)。
    • 当你用谷歌搜索“PInvoke”时,你会得到很多关于使用“link1”的教程。如果您想详细了解:mono-project.com/Interop_with_Native_Libraries
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2017-04-13
    • 2011-01-11
    • 2015-12-12
    • 2018-05-06
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多