随笔分类 -  [01-4].NET-WinForm

摘要:这是一个小小的组件,实现控制带有滚动条的控件(ListView,TreeView等)的滚动条显示。 带有滚动条的控件,通常情况下都是需要显示滚动条的时候,如果水平滚动条和垂直滚动条都需要显示,就一起显示出来。但是有的时候我们只想让其只显示一条滚动条,例如只显示垂直滚动条,我们应该怎么办呢?下面是一种可选方案: /// <summary> /// 作者:Starts_2000 /// 日期:2009-07-14 /// 网站:http://www.csharpwin.com CS 程序员之窗。 /// 你可以免费使用或修改以下代码,但请保留以上版权信息。 /// 具体请查看 CS程序 阅读全文
posted @ 2011-10-21 09:56 把爱延续 阅读(2942) 评论(1) 推荐(0) 编辑
摘要:在winform开发中,通过设置Panel的AutoScroll属性来控制滚动条是否显示,但显示滚动条的时候,鼠标的滚轮是无法控制Panel里面的滚动条的,只能控制Form的滚动条,当我们需要控制Panel的滚动条的时候,应该怎么做呢?1、拖一个Panel到Form里面,修改Name为panel_content,并设置AutoScroll为True2、在Form的Load事件中添加下面的代码 this.MouseWheel += FormSample_MouseWheel;3、在Form类中添加FormSample_MouseWheel方法View Code1///<summary> 阅读全文
posted @ 2011-09-02 12:56 把爱延续 阅读(1004) 评论(2) 推荐(1) 编辑
摘要:还记得上一次的猜测了windows右键菜单 “发送到 Evernote”的功能实现方案,呵呵,今天又猜了一次,不过换成了IE右键菜单。我想任何一个不明白其中原理和实现方案的人、在刚遇到这个问题时肯定是“丈二的和尚”——摸不着头脑。我也是这样、一头雾水,不过还大概的有点头绪,就是弄清楚“Add To Evernote”用到了哪些东西、那些文件,然后再和其他应用程序的相似功能进行对比,这样就能把“狐狸尾巴”揪出来了。开始揪尾巴…打开360安全卫士,找功能大全,里面有一项叫“右键菜单管理”的功能。嘿嘿,这招有点狠,尾巴立马被抓到了,如下图:右键菜单.png (39.21 KiB) 被浏览 1 次我的 阅读全文
posted @ 2011-08-14 20:22 把爱延续 阅读(1481) 评论(0) 推荐(0) 编辑
摘要:今天遇到的一个输入法全/半角的问题,大致情形如下:用户注册界面中对用户名及邮箱进行验证、验证条件中有一项为“半角字符”,即全角字符不合法。并且验证错误时的提示信息也做的比较粗糙,提示的是什么“用户名允许…字符,长度是多少 ”等等,而恰好没有提示到“半角字符”。这时候某用户开始了一遍又一遍输入他那全角的英文字符,然而总是注册失败,弄的很郁闷。唉,用户交互没做好啊!再言之:WinForm里用错误提示大多还是用那种“小红圈”[ErrorProvider],错误提示文本被隐藏了,不能被用户直接看到。还有当时他似乎也没有看错误提示信息哦。仔细想想 这是用户的错吗? 似乎也不能责怪用户吧!既然遇到问题了, 阅读全文
posted @ 2011-08-01 19:49 把爱延续 阅读(1640) 评论(2) 推荐(0) 编辑
摘要:包含颜色选择器,日历控件(类似于Google日历),数字时钟,LED等控件1.日历控件 calendar.rar2.Office 2003中的颜色选择器OfficePickers.rar Pickers.zip3.自定义颜色的滑动条ColorSlider.rar4.数字时钟C#中创建一个时钟控件5.LED边框外发光的液晶数字显示翻译sllow. 著NextUI Digital panel简介如何将你的软件展示给用户是非常重要的,NextUI提供了一系列的界面控件,希望对每个人有用。这里的控件是一个液晶数字显示屏,可以很酷地显示数字,并且每个数字都可以实现边框外发光的效果。【翻译】很好看的LE. 阅读全文
posted @ 2011-07-30 18:06 把爱延续 阅读(1544) 评论(0) 推荐(0) 编辑
摘要:当从OutLook中拖拽附件时,其拖拽的源共有四种DataFormat,其中FileGroupDescriptor 包含拖拽的文件名,FileContents中是文件内容。当然Copy附件也是一样。如下代码演示了一个简单的拖拽,并将拖拽的附件保存到了系统临时目录下。//// Program created by Thomas (Tom) F. Gueth, Binary Star Technology, Inc//// You are welcome to use this sample code in any manner you wish, commercial or otherwise. 阅读全文
posted @ 2011-07-21 20:31 把爱延续 阅读(1361) 评论(1) 推荐(0) 编辑
摘要:区分鼠标单击和双击事件处理MouseDown事件并确定单击位置和两次单击间的时间间隔,方法是使用适当的SystemInformation属性和Timer组件。根据发生的是单击还是双击,执行适当的操作。下面的代码示例阐释这是如何实现的。using System;using System.Drawing;using System.Windows.Forms;namespace SingleVersusDoubleClick{ class Form1 : Form { private Rectangle hitTestRectangle = new Rectangle(); private Rect 阅读全文
posted @ 2011-07-12 11:32 把爱延续 阅读(3443) 评论(0) 推荐(0) 编辑
摘要:在部署一个vs2008环境下的Winform应用程序时,因为引用一个Html编辑器,而用到了Microsoft mshtml.dll程序集, 版本为7.0.3300.0,对应文件在 E:\Vs2008的安装目录\Visual Studio Tools for Office\PIA\Office11\ 阅读全文
posted @ 2011-06-15 14:43 把爱延续 阅读(530) 评论(1) 推荐(1) 编辑
摘要:C#两种创建快捷方式的方法用WSH直接创建快捷方式:1.首先要添加引用.添加引用的方法非常简单,右击你的项目并选择添加引用,选择 COM 选项卡并选择 Windows Script Host Object Model2.引用命名空间using System.Runtime.InteropServic... 阅读全文
posted @ 2011-06-15 10:06 把爱延续 阅读(15232) 评论(1) 推荐(1) 编辑
摘要://实现接近屏幕窗体边源吸附 private void timer1_Tick(object sender, EventArgs e) { if (this.WindowState != System.Windows.Forms.FormWindowState.Minimized) { if (Cursor.Position.X > this.Left && Cursor.Position.X < this.Right && Cursor.Position.Y > this.Top && Cursor.Position.Y &l 阅读全文
posted @ 2011-05-26 09:49 把爱延续 阅读(785) 评论(2) 推荐(2) 编辑
摘要:WebBrowse 编辑模式 中几个讨厌的问题:1、当设置DocumentText属性值时会一直弹出一个“可恶的保存对话框”现我已知的较好的策略有:1)在设置两个DocumentText属性值之间使用webBrowser1.Document.OpenNew(true)方法,但这个方法会引发一些问题。详细内容见下。2)在设置DocumentText属性之前将编辑模式改为浏览模式,设置完后再将浏览模式改为编辑模式。2、监控Html内容的改变。监控 WebBrowser 控件内容的改变3、WebBrowse的Mouse事件。WebBrowse本身没有Mouse的相关事件,但是我们可以借助WebBro 阅读全文
posted @ 2011-05-24 17:29 把爱延续 阅读(2604) 评论(0) 推荐(0) 编辑
摘要:前几天我转载了一篇随笔《浅述WinForm多线程编程与Control.Invoke的应用》,有博友反映说问题没有说到点上,我在这里为此做一个解释:随笔是别人写的,我想尊重原创的意愿、所以我也没有那篇随笔做任何更改。 还有,那篇随笔更加侧重的是知识点,而不是实例。步入正题.为了解决窗体卡死的问题,我常用的是如下的两种策略:1、就是前文提到的 多线程 + Invoke2、BackgroundWorker 组件策略1优点就是 较灵活、适用更广泛,几乎可以用于解决任意情况下窗体卡死;而其缺点:需要自己额外编写许多代码、相对于策略2较为不方便。相对而言、我还是较青睐于策略2,毕竟方便嘛,可以少写一些Co 阅读全文
posted @ 2011-05-16 14:40 把爱延续 阅读(781) 评论(0) 推荐(0) 编辑
摘要:VS2008、C#3.0在WinForm开发中,我们通常不希望当窗体上点了某个按钮执行某个业务的时候,窗体就被卡死了,直到该业务执行完毕后才缓过来。一个最直接的方法便是使用多线程。多线程编程的方式在WinForm开发中必不可少。本文介绍在WinForm开发中如何使用多线程,以及在线程中如何通过Control.Invoke方法返回窗体主线程执行相关操作。-. WinForm多线程编程1. new Thread()新开一个线程,执行一个方法,没有参数传递:privatevoidDoWork(){Threadt=newThread(newThreadStart(this.DoSomething)); 阅读全文
posted @ 2011-05-13 14:53 把爱延续 阅读(837) 评论(2) 推荐(1) 编辑
摘要:———————————————————————————————————————————————————————————————— 由于本人在开发中经常要在程序中嵌入浏览器,为了符合自己的需求经常要对浏览器进行扩展和定制, 解决这些问题需在网上找资料和学习的过程,我想可能很多开发者或许会遇到同样的问题,特写此文,以供大家参考。在MFC中使用浏览器 在MFC中微软为我们提供了CHtmlView、CDHtmlDialog类让我们的程序很方便的嵌入浏览器和进行浏览器的二次开发,这比直 接使用WebBrowser控件要方便很多,所以本文中讨论的浏览器的问题都是针对CHtmlView来讨论的。文中将提到一 阅读全文
posted @ 2011-04-29 18:17 把爱延续 阅读(8676) 评论(1) 推荐(0) 编辑
摘要:一、启用编辑模式、 浏览模式 及 自动换行 /// /// 编辑模式 ///publicvoid EditMode() { if (this.webBrowser.Document !=null) ... 阅读全文
posted @ 2011-04-23 02:26 把爱延续 阅读(5319) 评论(0) 推荐(1) 编辑
摘要:实用方法1:获取状态栏信息void webBrowser1_StatusTextChanged(object sender, EventArgs e){ label1.Text = webBrowser1.StatusText;}实用方法2:页面跳转后改变地址栏地址//在Navigated事件处理函数中改变地址栏地址是最恰当的:private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e){ textBox1.Text = webBrowser1.Url.ToString();}实用方法3:设置 阅读全文
posted @ 2011-04-22 01:47 把爱延续 阅读(8536) 评论(0) 推荐(0) 编辑
摘要:1、主要用途:使用户可以在窗体中导航网页。2、注意:WebBrowser控件会占用大量资源。使用完该控件后一定要调用Dispose方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用Dispose方法,该线程应始终是消息或用户界面 (UI) 线程。3、WebBrowser使用下面的成员可以将控件导航到特定 URL、在导航历史记录列表中向后和向前移动,还可以加载当前用户的主页和搜索页:1.URL属性:可读、可写,用于获取或设置当前文档的 URL。 WebBrowser控件维护浏览会话期间访问的所有网页的历史记录列表。设置Url属性时,WebBrowser控件导航到指定的 URL 并将该 阅读全文
posted @ 2011-04-21 16:52 把爱延续 阅读(7060) 评论(0) 推荐(0) 编辑
摘要:讨论见原帖(如何操作我的程序的另一个实例(进程)):http://topic.csdn.net/u/20081221/01/457bb3b1-2f19-47e2-9621-cf4117ee45ce.htmlusing System;using System.Threading;using System.Windows.Forms;static class Program{ public static EventWaitHandle ProgramStarted; [STAThread] static void Main() { // 尝试创建一个命名事件 bool createNew; Pro 阅读全文
posted @ 2011-04-18 03:42 把爱延续 阅读(1766) 评论(3) 推荐(1) 编辑
摘要:转:/*********************** 课题:将窗体中鼠标所在控件名显示在窗体标题上* 作者:ZAXX* QQ : 94027486* 本课题可简单扩展:获取屏幕上鼠标所在位置的窗口句柄与类名**********************/using System;using System.Drawing;using System.Windows.Forms;using System.Runtime.InteropServices;namespace Zaxx{ public partial class MouseOnControl: Form { [DllImport(" 阅读全文
posted @ 2011-04-14 11:02 把爱延续 阅读(10597) 评论(1) 推荐(0) 编辑
摘要:一、using System;using System.Runtime.InteropServices;using System.Windows.Forms;using System.Diagnostics;using System.Reflection;public class OneInstnace{//Api声明,并声明一[DllImport("User32.dll")] private static extern bool ShowWindowAsync( IntPtr hWnd, int cmdShow);[DllImport("User32.dll&q 阅读全文
posted @ 2011-04-07 18:22 把爱延续 阅读(433) 评论(0) 推荐(0) 编辑