最近很多小伙伴都在问System.Windows.Forms.TextBox中的水印和wpftextbox水印这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.net–System
最近很多小伙伴都在问System.Windows.Forms.TextBox中的水印和wpf textbox水印这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展.net – System.Windows.Forms.Keys枚举中的“OEM”密钥是什么?、.net – System.Windows.Forms.WebBrowser:强制X86?、.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作、.net – 如何向System.Windows.Forms.MenuItem添加图标?等相关知识,下面开始了哦!
本文目录一览:- System.Windows.Forms.TextBox中的水印(wpf textbox水印)
- .net – System.Windows.Forms.Keys枚举中的“OEM”密钥是什么?
- .net – System.Windows.Forms.WebBrowser:强制X86?
- .net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作
- .net – 如何向System.Windows.Forms.MenuItem添加图标?
System.Windows.Forms.TextBox中的水印(wpf textbox水印)
System.Windows.Forms.TextBox
用C#在.Net 2.0中实现Watermark功能的最佳方法是什么?
编辑:
使用CodeProject的现成组件非常容易。它还带有The Code Project Open License(CPOL)。
答案1
小编典典最近我需要一个水印文本框,第一个出现在我头上的是文本框的OnLeave和OnEnter事件,但是首先我用Google对其进行了搜索,并且得到了两个链接,第一个是CodeProject中的一个使用System.Drawing命名空间的链接,另一个是一个是在这里http://vidmar.net/weblog/archive/2008/11/05/watermarked-
textbox-in-windows-forms-
on-.net.aspx上使用SendMessage()的。
我相信SendMessage更加容易,并且其中也没有闪烁。虽然我用过
希望对您有帮助。
.net – System.Windows.Forms.Keys枚举中的“OEM”密钥是什么?
这些“OEM”键有什么处理?我做了一个小小的搜索,似乎是因为键只支持Win2k或更高版本,但这似乎是可笑的,因为我确定人们在Win2k几十年前一直使用plus键。为什么没有“OemEquals”?有没有其他键完全没有在键盘枚举?
我主要寻找一个为什么这些特殊值存在的答案,但我很乐意听到有关其他问题的讨论。可以肯定的是,由于加号在我的键盘上的等号上,使用Keys.OemPlus并检查Shift修饰符键是否可以告诉Ctrl =是否被点击?还有其他键被省略吗?
请注意,这不是一个WPF问题,尽管System.Windows.Forms.Keys和System.Windows.Input.Key枚举看起来是一样的(尽管Key根据框架设计指南错误命名))
首先,这些是KEY代码,而不是字符代码:它们标识键盘上的键,而不是字符。 “A”字符通常按住A键同时按住SHIFT键或使CAPS LOCK有效时生成。
OEM键是与本地键盘不同的按键。美国键盘在括号和括号中,德语键盘具有变音符号。
它们被称为“OEM”,因为原始设备制造商(键盘)负责定义其功能。
.net – System.Windows.Forms.WebBrowser:强制X86?
有什么办法可以强迫它使用x86 IE吗?浏览器访问的网页元素在x64上不起作用,并且不受我的控制.
.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作
我的第一种方法是使用System.Windows.Forms.Timer及其Tick事件.我选择了它,因为我正在阅读的教程.不知怎的,我无法使服务工作.它安装并启动没有问题,但它不会触发事件(我将调试器附加到进程并看到它没有被触发).我认为在Windows服务中使用Forms计时器可能不是一个好主意,因此我决定切换到System.Timers.Timer并利用其Elapsed事件.这也不起作用.我在Windows窗体应用程序中尝试了两种提到的方法,但它们都有效.
经过一番挖掘后,我发现这个网站:http://weblogs.asp.net/sibrahim/archive/2004/01/13/58429.aspx,博主建议使用另一个计时器:System.Threading.Timer.我第三次改变了这种方法,BOOM开始像魅力一样工作.
我的问题是:为什么我不能在Windows服务中使用其他计时器,为什么找到有关它的信息这么困难?
System.Timers.Timer是一个基于服务器的计时器,并在您创建它的线程上引发一个事件(我认为).如果这不起作用,也许你没有启动计时器或计时器在一个立即结束的线程上运行(因为,没有任何东西保持线程活着,所以它完成).
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx
System.Threading.Timer计时器使用在ThreadPool线程上运行的回调,并且根本不依赖于消息泵,因此这有效.
当您在WinForms项目中运行Application.Run(myForm)时,该调用也会运行消息泵,这将管理UI消息.您提到的Windows计时器是一个UI组件,并期望消息泵运行,以便在UI线程上发生tick事件.
看看这里在Windows服务中运行消息泵:
Message pump in .NET Windows service
进一步阅读:
http://support.microsoft.com/kb/842793
总之,我只是使用System.Threading.Timer类.
.net – 如何向System.Windows.Forms.MenuItem添加图标?
这是我写的代码:
private System.Windows.Forms.ContextMenu notifyContextMenu; private void foo() { if (notifyIcon == null) { notifyIcon = new System.Windows.Forms.NotifyIcon(); } if (notifyContextMenu == null) { notifyContextMenu = new System.Windows.Forms.ContextMenu(); notifyContextMenu.MenuItems.Add("Exit"); // How do I add an icon to this context menu item? } notifyIcon.ContextMenu = notifyContextMenu; } }
解决方法
更改
notifyContextMenu = new System.Windows.Forms.ContextMenu(); notifyContextMenu.MenuItems.Add("Exit");
至
notifyContextMenu = new System.Windows.Forms.ContextMenuStrip(); var exitMenuItem = notifyContextMenu.Items.Add("Exit"); exitMenuItem.Image = ...;
http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.image.aspx
最后附上上下文菜单条来通知图标,
notifyIcon.ContextMenuStrip = notifyContextMenu;
关于System.Windows.Forms.TextBox中的水印和wpf textbox水印的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于.net – System.Windows.Forms.Keys枚举中的“OEM”密钥是什么?、.net – System.Windows.Forms.WebBrowser:强制X86?、.net – 为什么Windows服务不能与System.Timers.Timer或System.Windows.Forms.Timer一起正常工作、.net – 如何向System.Windows.Forms.MenuItem添加图标?等相关内容,可以在本站寻找。
本文标签: