Tag: .net 2.0

如何确定winform所在的监视器?

我一直在这个网站上下,发现了很多关于Screen类的信息,以及如何计算监视器的数量等,但我如何确定一个表单目前在哪个监视器?

.net构造for while循环与超时

我通常使用while循环继续尝试某些操作,直到操作成功或超时已经过去: bool success = false int elapsed = 0 while( ( !success ) && ( elapsed < 10000 ) ) { Thread.sleep( 1000 ); elapsed += 1000; success = … some operation … } 我知道有几种方法可以实现这一点,但基本的一点是,我反复尝试一些操作,一直睡到成功,或者我睡得太久了。 是否有一个内置的.net类/方法/等来避免我在整个地方重写这个模式? 也许输入是一个Func(bool)和超时? 编辑 感谢所有贡献者。 我选择了sleep()方法,因为它是最不复杂的,我完全反复杂性=)这是我的(仍然需要测试)实现: public static bool RetryUntilSuccessOrTimeout( Func task , TimeSpan timeout , TimeSpan pause ) { if […]

寻找桌面应用程序的Visual Studio工具箱样式导航

我正在开发一个项目,该项目使用带有导航面板的MDI应用程序。 目前它是一个ListView。 但是,我想重新设计它类似于visual studio 2008中的工具箱。 如果这需要覆盖默认的paint方法,那么如果你能提供一些关于如何使用paint方法的好参考,那也会有所帮助,因为我目前没有任何使用它的经验。 提前致谢。

如何处理这个C​​#hang invloving SystemEvents.OnUserPreferenceChanged

我的WinForm应用程序有挂起问题。 发生的事情是,客户端有时会让应用程序在一夜之间运行,并且当它们在早上应用程序中恢复时,通常处于挂起状态。 这是我在主线程上的转储文件中看到的。 我不明白的是什么可以调用SystemEvents.OnUserPreferenceChanged事件,虽然我不认为我正在做任何调用此事件的事情。 0024e480 770496f4 System.Threading.WaitHandle.WaitOneNative(Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean) 0024e52c 702c68af System.Threading.WaitHandle.WaitOne(Int64, Boolean) 0024e548 702c6865 System.Threading.WaitHandle.WaitOne(Int32, Boolean) 0024e55c 6e891a6f System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle) 0024e570 6ebcd6eb System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean) 0024e610 6e8933cc System.Windows.Forms.Control.Invoke(System.Delegate, System.Object[]) 0024e644 6eac0c83 System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback, System.Object) 0024e65c 6fe1eed2 Microsoft.Win32.SystemEvents+SystemEventInvokeInfo.Invoke(Boolean, System.Object[]) 0024e690 6fe1d07f Microsoft.Win32.SystemEvents.RaiseEvent(Boolean, System.Object, System.Object[]) 0024e6dc 6fe1e38f Microsoft.Win32.SystemEvents.OnUserPreferenceChanged(Int32, IntPtr, IntPtr) 0024e6fc 6fa64c29 Microsoft.Win32.SystemEvents.WindowProc(IntPtr, Int32, IntPtr, IntPtr) […]

如何安全地发射事件

当事件没有订阅者时,如何确保在触发事件时不会抛出exception。 // Delegate declaration public delegate void _delDisplayChange(object sender,string option); // Event declaration public event _delDisplayChange DisplayChange; //throwing the event DisplayChange(this, “DISTRIBUTION”);

密码恢复无需通过电子邮件发送密码

所以,我一直在玩asp:PasswordRecovery并发现我真的不喜欢它,原因有以下几点: 1)即使无法访问Alice的电子邮件,也可以重置Alice的密码。 密码重置的安全问题减轻了这一点,但并不能让我满意。 2)Alice的新密码以明文forms发回给她。 我想向她发送一个特殊链接到我的页面(例如像example.com/recovery.aspx?P=lfaj0831uefjc这样的页面),这会让她更改她的密码。 我想我可以通过创建某种过期密码恢复页面表并将这些页面发送给要求重置的用户来自行完成。 不知何故,这些页面也可以在幕后更改用户密码(例如,通过手动重置它们然后使用新密码的文本来更改密码,因为密码在不知道旧密码的情况下无法更改)。 我确定其他人之前遇到过这个问题,这种解决方案让我觉得有点笨拙。 有一个更好的方法吗? 理想的解决方案不会通过直接访问数据库来违反封装,而是使用数据库中的现有存储过程……尽管这可能是不可能的。

比较C#中的两个数据集

我有两个数据集,我需要比较这两个数据集,如果一个表中不存在ID,那么我需要编写插入查询其他更新查询。 对于Ex: Id in One dataset ID in second Dataset 1 1 2 2 3 4 我需要将ID 3插入第二个数据集。 这是我的代码供您参考: if (ds.Tables[0].Rows.Count > 0 || clientDS.Tables[0].Rows.Count > 0) { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { for (int j = 0; j < clientDS.Tables[0].Rows.Count; j++) { if (ds.Tables[0].Rows[i]["Id"].ToString() == clientDS.Tables[0].Rows[j]["Id"].ToString()) { client.GetSingleValue("update customers […]

从C#中的字符串数组中获取随机值的最快方法?

在.net 2.0框架中从C#中的字符串数组中获取随机值的最快方法是什么? 我想他们可能有这个: string[] fileLines = File.ReadAllLines(filePath); fileLines.GetRandomValue(); 是的,我知道GetRandomValue()不是一个实际的方法,是否有类似的东西或多或少同样短而甜?

来自SQL数据库表的C#类

碰到了这个: http://www.eggheadcafe.com/articles/adonet_source_code_generator.asp 并且想知道这是否是正确的解决方案,因为我不是为每个存储过程创建类的粉丝,或者我使用Enterprise Library for ASP.net 2.0项目。

拆分XML文档,从重复元素创建多个输出文件

我需要获取一个XML文件,并从输入文件的重复节点创建多个输出xml文件。 源文件“AnimalBatch.xml”如下所示: One Red Rooster Two Stubborn Donkeys Three Blind Mice 程序需要拆分重复的“Animal”并生成3个名为Animal_1001.xml,Animal_1002.xml和Animal_1003.xml的文件。 每个输出文件应该只包含它们各自的元素(它们是根)。 来自AnimalsBatch.xml的id属性将提供Animal_xxxx.xml文件名的序列号。 id属性不需要在输出文件中。 Animal_1001.xml: One Red Rooster Animal_1002.xml Two Stubborn Donkeys Animal_1003.xml> Three Blind Mice 我想用XmlDocument来做这件事,因为它需要能够在.Net 2.0上运行。 我的程序看起来像这样: static void Main(string[] args) { string strFileName; string strSeq; XmlDocument doc = new XmlDocument(); doc.Load(“D:\\Rick\\Computer\\XML\\AnimalBatch.xml”); XmlNodeList nl = doc.DocumentElement.SelectNodes(“Animal”); foreach (XmlNode n in nl) { […]