如果您使用SharpDevelop 4创建一个新的winform项目,然后将OpenFileDialog(或SaveFileDialog)拖到窗体,然后显示对话框(.ShowDialog),Norton Internet security 2011会阻止该应用程序并将其删除(二进制文件).诺顿的声纳保护报告了该应用的"可疑行为".Visual Studio创建的项目不会发生这种情况.我运行Win 7.
我想也许这与缺乏单线程的公寓属性有关.SharpDevelop是否将此属性用于winforms?它在哪里?一般来说:SharpDevelop和Visual Studio的自动生成代码之间有什么区别可能会导致这种情况?
编辑:
我有一个主窗体(WinForm),它应该呈现其内容没有ClearType.更确切地说,该表单中的RichTextBox应该呈现其没有ClearType的文本.在最终用户系统上打开ClearType时,如何防止它影响我的应用程序?
我没有找到如何使用System.Drawing实现这一点,也不知道P/Invoke解决方案.
我在HwndSource不是主窗口的 WPF 窗口中使用,以便挂钩窗口过程 (WndProc) 以接收一些消息:
WinSource = HwndSource.FromHwnd(new WindowInteropHelper(this).Handle);
WinSource.AddHook(new HwndSourceHook(WndProc));
Run Code Online (Sandbox Code Playgroud)
HwndSource实施IDisposable. MSDN 不清楚我何时/应该处理它。HwndSource.FromHwnd的文档解释了上述技术:
您可以使用此方法为不是显式互操作窗口的窗口返回 HwndSource。这样做的程序是:
- 创建一个 WindowInteropHelper 实例(提供主 Window 作为构造函数参数)。
- 从该 WindowInteropHelper 实例获取 Handle 属性的值。
- 将该 HWND 值作为参数传递给 FromHwnd。
进而:
如果您随后想要向窗口添加常规 AddHook 消息处理,则此技术非常有用。但是,每当您创建 HwndSource 时,您也有责任销毁它。即使已释放应用程序 HwndSource 的 Application 对象,也是如此。
(重点是我的)
但是,在HwndSource类文档中,我们看到:
对象生存期
HwndSource 是常规公共语言运行时 (CLR) 对象,其生命周期由垃圾收集器管理。因为 HwndSource 表示非托管资源,所以 HwndSource 实现 IDisposable。[...] 对于某些互操作场景,可能需要从互操作代码中显式调用 Dispose。
关于钩子:
实际的钩子由弱引用保存。因此,请确保您管理钩子委托的生命周期。
使用 CSCore,如何从FileStreamor播放 WMA 或 MP3 MemoryStream(与使用string文件路径或 url的方法不同)。
我有一个记录文件,按字母顺序排序:
第一个字段是人名,第二个字段是一些id.一旦我读取文件,我就不需要对数据进行任何更改.
我想将每个记录视为键值对,其中人名是键.我不知道使用哪个类来访问记录(尽可能快).Dictionary没有二进制搜索.在另一方面,按照我的理解,SortedList并且SortedDictionary只有当我需要插入应该使用/删除数据.
编辑:为了澄清,我说的只是访问记录,如:
x = MyDic[Zac]
Run Code Online (Sandbox Code Playgroud) .net ×3
c# ×2
winforms ×2
antivirus ×1
audio ×1
cleartype ×1
cscore ×1
dictionary ×1
fonts ×1
gdi+ ×1
idisposable ×1
interop ×1
search ×1
sharpdevelop ×1
wpf ×1