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

摘要:我们常常需要在窗体关闭的过程中执行一些操作,而且有时候需要做一个判断是由于何种原因导致窗体关闭的,CloseReason就为我们提供了依据。能够使窗体关闭的几种方式:一、1、调用Close 方法2、点关闭按钮3、ATL+F4以上的三种方式:CloseReason的值为CloseReason.UserClosing DialogResult 值为 None二、1、设置DialogResult 值 [不包括DialogResult.None]CloseReason的值为CloseReason.None三、Application.Exit() 方法CloseReason的值为CloseReason. 阅读全文
posted @ 2011-04-06 15:21 把爱延续 阅读(377) 评论(0) 推荐(0) 编辑
摘要:Bindable指定屬性是否支援Data Binding。这个特性表示属性是否可以绑定一个有效数据源。通常使用布尔值进行设置。例如:Bindable(true)。如果使用值true标记属性,表示该属性可以绑定一个有效数据源,且应引发该属性的属性更改通知。Browsable控制屬性或事件是否顯示於屬性表。指定属性是否应该在属性浏览器中显示,使用布尔值设置。通常情况下,功用属性和那些希望在属性浏览器中显示的属性被设置为 Browsable(true),只读属性和那些不希望在属性浏览器中见到的属性被设置为 Browsable(false)。Category對于屬性或是事件的分類,當屬性表採分類模式顯 阅读全文
posted @ 2011-04-01 12:00 把爱延续 阅读(3628) 评论(0) 推荐(0) 编辑
摘要:1、右击任务栏图标显示右键菜单 [DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto)] public static extern int GetWindowLong(HandleRef hWnd, int nIndex); [DllImport("user32.dll", EntryPoint = "SetWindowLong", CharSet = CharSet.Auto)] public static ex 阅读全文
posted @ 2011-03-31 17:31 把爱延续 阅读(991) 评论(0) 推荐(0) 编辑
摘要:const int WM_NCHITTEST = 0x0084;const int HTLEFT = 10;const int HTRIGHT = 11;const int HTTOP = 12;const int HTTOPLEFT = 13;const int HTTOPRIGHT = 14;const int HTBOTTOM = 15;const int HTBOTTOMLEFT = 0x10;const int HTBOTTOMRIGHT = 17;protected override void WndProc(ref Message m){ base.WndProc(ref m); 阅读全文
posted @ 2011-03-30 17:26 把爱延续 阅读(1683) 评论(6) 推荐(0) 编辑
摘要:前面介绍了两篇关于ComboBox扩展和美化的文章:C# WinForm控件美化扩展系列之ComboBox组合框控件和C# WinForm控件美化扩展系列之给ComboBox加水印,今天将在前两篇的基础上实现一个ImageComboBox控件,ImageComboBox控件拥有以下功能:(1) 美化下拉按钮和边框,前面的文章已经实现。(2) 当ComboBox没有控件选择项和没有焦点时显示提示用户操作信息,前面的也文章已经实现。(3) 在下拉列表框的项中显示图标,项可以缩进。(4) 在ComboBox控件中也显示图标。来看看最终需要实现的效果:图1 ImageComboBox DropDown 阅读全文
posted @ 2011-03-23 15:00 把爱延续 阅读(4971) 评论(0) 推荐(0) 编辑
摘要:一、投影文字 private void Form1_Paint(object sender, PaintEventArgs e) { //投影文字 Graphics g = this.CreateGraphics(); //设置文本输出质量 g.TextRenderingHint = TextRenderingHint.ClearTypeGridFit; g.SmoothingMode = SmoothingMode.AntiAlias; Font newFont = new Font("Times New Roman", 48); Matrix matrix = new 阅读全文
posted @ 2011-03-22 14:46 把爱延续 阅读(10539) 评论(0) 推荐(1) 编辑
摘要:要在 WinForm 中使用 Flash,通常需要用到 Shockwave Flash Object 这个 COM 组件。(http://www.codeproject.com/csharp/fscommand.asp)(http://www.codeproject.com/useritems/FlashDBInteract.asp)具体步骤如下:首先添加对 COM 组件 Shockwave Flash Object 的引用,将该组件拖到窗体上之后,可以设置如下关键属性:Movie: flash 的存放地址EmbedMovie: 是否嵌入到程序的资源中。接下来你可以设置**一些属性,使得 Fl 阅读全文
posted @ 2011-03-21 14:48 把爱延续 阅读(5890) 评论(0) 推荐(0) 编辑
摘要:在一些软件中,我们看到当一个输入控件(TextBox)没有输入而且没有焦点的时候,会显示一些提示信息,网上有一些介绍用复合控件来实现,其实我们直接继承TextBox控件也很容易实现。 下面就介绍怎样来实现这个控件。第一步:我们建一个继承 TextBox 的类,命名为WatermakTextBox。第二步:给这个类添加两个属性,一个是EmptyTextTip,就是当控件没有输入内容和没有焦点的时候显示的提示文本,也就是水印了;另一个是EmptyTextTipColor,就是提示文本的颜色。第三步:也就是最重要的一步,就是重写WndProc 函数,截取WM_PAINT消息,当没有输入内容和输入焦点 阅读全文
posted @ 2011-03-21 14:07 把爱延续 阅读(6014) 评论(2) 推荐(1) 编辑
摘要:.NET中DataGridView 控件可以每个数据行显示不同的背景颜色,方便用户查看,而ListBox却没有实现这样的显示,这篇文章我们就要介绍怎样让ListBox实现隔行显示交替的背景色。要实现ListBox隔行显示不同的背景色并不是很难,下面我们就一步步的来实现:1、 继承 ListBox,设置其DrawMode 为 OwnerDrawFixed,看下代码:public ListBoxEx() : base() { base.DrawMode = DrawMode.OwnerDrawFixed;}2、 给继承的控件添加3个属性:RowBackColor1,RowBackColor2,Se 阅读全文
posted @ 2011-03-21 14:05 把爱延续 阅读(4897) 评论(0) 推荐(0) 编辑
摘要:昨天的文章中介绍了怎样使ListBox隔行显示不同的颜色,今天接着介绍怎样扩展ListView控件,使他也具有这样的功能,而且重绘他的Header,使其更美观。在这篇文章中,我只对View 为 Details的时候进行了重绘,至于其他的Ttile,List,SmallIcon,LargeIcon,大家可以照着代码自己实现。这个控件的美化大致跟ListBox的差不了多少,我们还是一步一步的来实现它吧:1、 继承ListView,并把 OwnerDraw 设为True,如下: public ListViewEx() : base() { base.OwnerDraw = true;}2、 给继承的 阅读全文
posted @ 2011-03-21 13:31 把爱延续 阅读(13702) 评论(2) 推荐(2) 编辑
摘要:导致Ctrl + Z失效的原因由以下2点连锁引发而导致:1、为了解决 WebBrowser 控件导航时弹出“保存对话框”,使用了 this.webBrowser.Document.OpenNew(true); // 防止 弹出保存对话框, 该方法指示新的文本改变将会在新窗口中打开。2、 由原因1导致 webBrowser 控件的编辑模式失效, 表面上看上去还是可以编辑的,但实际上新窗口内部已经不支持编辑了。注:这里涉及到了WebBrowser控件的特殊性,它是由三层控件嵌套而成的,外面的两层是大概负责容器、 及 响应用户操作的, 而最内层的则是承载HTML标记,并通过渲染引擎展示HTML内容。 阅读全文
posted @ 2011-03-17 13:47 把爱延续 阅读(1165) 评论(4) 推荐(0) 编辑
摘要:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://cjbskysea.blogbus.com/logs/36323046.html对于处理所有消息.net 提供了wndproc进行重写WndProc(ref Message m)protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_C 阅读全文
posted @ 2011-03-11 07:27 把爱延续 阅读(4147) 评论(0) 推荐(1) 编辑
摘要:/// <summary> /// HTTP 下载文件 /// Current Thread Download /// </summary> /// <param name="URL">下载文件地址</param> /// <param name="buffer">将下载的文件存入该字节数组</param> /// <param name="Prog">用于显示的进度条</param> public void DownloadFile(st 阅读全文
posted @ 2011-03-06 18:32 把爱延续 阅读(3755) 评论(7) 推荐(0) 编辑
摘要:1 概述 微软Visual Studio.NET开发工具推出已经好几年了,这个开发工具一推出就以其易用性和强大功能深受开发者的喜爱。尤其是.NET环境使得不同开发语言如C#、VB.NET以及C++.NET之间的交互变得非常容易。因此涌现了许多在.NET下开发的控件库,可以供不同的开发语言调用。MagicLibrary就是其中比较优秀的一个用于界面设计的控件库,可以用来开发类似.Net Studio这样具有停靠窗口风格的界面。该库的源代码及使用说明可以从http://www.codeproject.com/cs/miscctrl/magicdocking.asp下载,感兴趣的读者还可以通过研究该 阅读全文
posted @ 2011-03-04 14:37 把爱延续 阅读(626) 评论(0) 推荐(0) 编辑
摘要:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhoufoxcn/archive/2007/10/19/1832819.aspxusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;/* * 作者:周公 * BackgroundWorker类是.net 2.0里新增加的一个类,对于需要长时间操作而不需要 阅读全文
posted @ 2011-02-25 12:52 把爱延续 阅读(652) 评论(0) 推荐(0) 编辑
摘要:今天的收获只有一项,那就是这个啦。。。呵呵, 主要的就是用到mshtml.IHTMLChangeSink 中的 Notify方法触发自定义的事件,具体的代码我也不懂,嘿嘿 这些都是从 东西市 Copy 来的,乱的成粥了。几点核心代码:public class Monitor : mshtml.IHTMLChangeSink{ // for monitor htmleditor textchanged private Guid IMarkupContainer2GUID = typeof(mshtml.IMarkupContainer2).GUID; private uint cookie = 阅读全文
posted @ 2011-02-18 16:25 把爱延续 阅读(3674) 评论(18) 推荐(1) 编辑
摘要:--------------------------------------------------------------今天遇到一个可恶的对话框:该文档已被修改,是否保存修改结果?是:保存修改结果否:放弃修改结果取消:仍打开该文档---------------------------------------------------------------设置了 AllowNavigation 设为 false、 ----------------结果对话框还是弹-------------------------------在WebBrower1的Navigating 事件中加以下代码就没有提 阅读全文
posted @ 2011-02-18 14:20 把爱延续 阅读(1360) 评论(2) 推荐(0) 编辑
摘要:话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrowser这个ActiveX控件了。这个类如果仅仅作为一个和IE一模一样浏览器,那就太没意思了(还不如直接用IE呢)。那么,无论我们是想做一个&ldquo;定制版IE&rdquo;,还是希望利用HTML来做用户界面(指WinApp而非WebApp。许多单机软件,包括Windows的帮助支持中心,都是HTML做的),都少不了Windows Form和包含在WebBrowser中的Web页面的交互。本文将通过几个实际的例子,初步介绍一下WinForm和WebBrowser所包含的Web页面之间的交互。 阅读全文
posted @ 2011-02-10 10:32 把爱延续 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:在不是js打开的页面上按window.close(), 会有提示框,很烦,现在可以不用了,没有提示框直接关闭窗口。试试下面代码:object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"/objectinput type="button" name="Button" value="关闭窗口" onClick="document.all.WebBrowser.ExecWB(45,1)"试着改变参数会得到其他一些功能:WebBrowser.ExecWB(1,1) 阅读全文
posted @ 2011-01-20 11:39 把爱延续 阅读(435) 评论(0) 推荐(0) 编辑
摘要:首先在from_load事件中添加以下代码: 编辑模式然后webBrowser1里面内容就可以编辑了其中如果需要得到webBrowser1中的内容可以使用:webBrowser1.Document.Body.InnerText 和 webBrowser1.Document.Body.InnerHtml从字面意思上可以看出是分别获取webBrowser1的文本形式内容和html形式内容。本文来自: 张筱祥博客(www.zxxblog.com) 详细出处参考:http://www.zxxblog.com/838[代码] 阅读全文
posted @ 2011-01-19 18:14 把爱延续 阅读(1008) 评论(0) 推荐(0) 编辑