UI
文章平均质量分 60
普通网友
这个作者很懒,什么都没留下…
展开
-
C# 窗口事件参数
C#中,一般的窗口事件参数为:(object sender, KeyPressEventArgs e)其中sender是指谁触发的事件;e则指出发送时候附带了什么信息不同的事件,e中所含的信息会不同;例如键盘敲击KeyPress事件,则包含键位信息;而在鼠标事件中,则包含左右键、点击位置等信息原创 2012-02-21 14:32:01 · 766 阅读 · 0 评论 -
C# 子线程与前台UI界面的交互
转自:如何在子线程中操作窗体上的控件下面是转载的一篇文章。但是,自己尝试的时候,发现直接调用invokeFun()函数也是可行的。作者的文章是06年的,可能比较早,此间C#已经经过一些版本的更新。一般来说,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作转载 2012-02-24 11:17:10 · 2386 阅读 · 0 评论 -
C# 在任务栏中显示应用程序图标
在System.Windows.Form中有属性:ShowInTaskBar(bool类型)通过设置Form的ShowInTaskBar属性,可设置窗体是否在任务栏中进行显示或隐藏form1.ShowInTaskBar=true; 则在任务栏中进行显示;form1.ShowInTaskBar=false; 则在任务栏中不显示;注意:默认情况下,该属性的取值为true,即在任务栏原创 2012-02-16 09:04:16 · 6474 阅读 · 0 评论 -
显示非模态窗口
非模态地显示窗口或窗体其实并不是非常简单。面临的挑战是键盘输入由源应用程序接收,并且需要传递给合适的窗口。为了让这种方法在WPF和Windows窗体内容之间可行,需要通过一种方法沿着正确的窗口或窗体转发这些消息。如果希望从Windows窗体应用程序内部非模态地显示一个WPF窗口,必须使用静态的ElementHost.EnableModelessKeyboardInterop( )方法。补充原创 2012-02-28 10:14:30 · 3068 阅读 · 0 评论 -
C# 在系统通知区域中显示图标
在C#中,有相应的NotifyIcon组件,用以控制程序在系统通知区域中的显示使用命名空间:System.Windows.Forms和System.Drawing通过设置该类组件对象的属性(最关键的应该是Icon和Visible属性),以在系统通知区域中显示对应的Icon图标属性说明:Icon:指定出现在通知区域中的图标(System.Drawing.Icon型),包括文件名称原创 2012-02-16 10:10:58 · 3427 阅读 · 0 评论 -
无法将顶级控件添加到控件
使用环境:VS2010,C#出错场景:收到一个新的连接时,为其弹出一个新的对话框。在设置对话框的父窗口时出错!错误代码:Form2 newForm=new Form2();newFormParent = this;newForm.Show();错误提示:未处理的ArgumentException:无法将顶级控件添加到控件。错误原因:Form默认为顶级原创 2012-02-29 13:17:47 · 9397 阅读 · 3 评论 -
C# ColorDialog的使用
本文为巧巧读书网Douces原创,原文是关于VB上的,由于C#跟VB有很多相似,所以进行了部分修改。ColorDialog 组件是.net预设的有模式对话框,其功能是弹出系统自带的调色板,让用户选择颜色或者自定义颜色。一、ColorDialog 组件的主要属性1、AllowFullOpen 属性:指示用户是否可以使用该对话框定义自定义颜色。如果用户可定义自定义颜色,则为 true;原创 2012-02-20 14:12:02 · 15743 阅读 · 1 评论 -
C# 对 Windows 窗体控件进行线程安全调用
参考自:http://msdn.microsoft.com/ZH-CN/library/SYSTEM.WINDOWS.FORMS.CONTROL.INVOKE.aspx如果使用多线程来提高 Windows 窗体应用程序的性能,则必须确保以线程安全方式调用控件。访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。原创 2012-02-28 16:54:26 · 4071 阅读 · 0 评论 -
C# 在子线程中创建不会阻塞执行的窗口
可以参考”C# 对 Windows 窗体控件进行线程安全调用“一文来看。在做网络连接程序的时候碰到一个问题:每当连接到来时,都创建一个新的接收线程,而该接收线程在接收到消息时,可以创建一个新的对话窗口,而该窗口不能阻塞该接收线程的下一轮消息的接收,而且该接收线程还要把接收到的消息显示在该窗口上Form.ShowDialog();方法弹出模态对话框,而模态对话框会阻塞后面代码的执行,导致原创 2012-02-24 14:04:56 · 11780 阅读 · 2 评论 -
OpenFileDialog类
转自:http://blog.sina.com.cn/s/blog_4e6dffee0100hid1.html在工具箱中,OpenFileDialog是一个组件,可以拖到Form上一、主要属性和事件1、 OpenFileDialog控件有以下基本属性InitialDirectory对话框的初始目录Filter要在对转载 2012-02-29 15:21:17 · 3484 阅读 · 0 评论 -
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式,请确保您的Main函数带有STAThreadAttribute标记。
参考自:http://www.cnblogs.com/winzheng/archive/2008/12/02/1345656.html出错环境:多线程接收文件的时候,需要打开一个SaveFileDialog对象,并调用ShowDialog()方法出错代码:void threadProc(){ ... SaveFileDialog saveFileDlg = n原创 2012-03-06 13:44:51 · 19134 阅读 · 0 评论 -
C# winform对话框用法大全
转自:http://blog.csdn.net/rxzgh/article/details/2988483对话框中我们常用了以下几种:1、文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话(SaveFileDialog)2、字体对话框(FontDialog)3、颜色对话框(ColorDialog)4转载 2012-03-06 13:08:55 · 1515 阅读 · 0 评论 -
C# Listbox的使用
转自:http://blog.csdn.net/xujuntao0000/article/details/4711574ListBox英文意思为列表框,可以说是ListView的简化版本,简化名为”LBS",ListBox窗口用来列出一系列的文本,每条文本占一行,用户可以从中选择一项或多项。当项总数超过可以显示的项数时,则会自动向ListBox控件添加滚动条。C#中ListBox控件的用法转载 2012-03-12 14:05:24 · 12147 阅读 · 0 评论 -
Splitter 控件的使用
参考至:http://hi.baidu.com/sddyszb/blog/item/4a4a210b591b312e6b60fbbf.html注意:Splitter 已被 SplitContainer 取代,而且SplitContainer的使用更为方便。概念解释:可调整的控件:可以被Splitter控件调整的控件。两者有相同的Dock属性,而且可调整控件位于Splitter控件在原创 2012-03-15 09:20:47 · 8737 阅读 · 0 评论 -
使用SplitContainer来实现隐藏窗口的部分内容
有两种方法:(1) Splitter:比较老的方法(2) SplitContainer:比较新的方法最终界面如下:方法一:使用Splitter实现(1) 在窗口中添加一个Panel控件,即Panel1将其Dock属性设为Right,这样Panel1就停靠在了窗口最右侧;(2) 在窗口中添加一个Splitter控件,即Splitter1将其Dock属性设为Ri原创 2012-03-15 15:39:18 · 9993 阅读 · 1 评论 -
SplitContainer的使用
作用:(Splitter的简化)使用 SplitContainer 控件可分隔容器(如 Form)的显示区域,并使用户可以调整已添加到 SplitContainer 面板中的控件的大小。当用户将鼠标指针移到拆分器上时,光标将发生变化,以指示可以调整 SplitContainer 控件内部的控件的大小。SplitContainer 也使设计时的控件放置更容易。例如,若要创建一个与 Win原创 2012-03-15 14:42:36 · 13148 阅读 · 0 评论 -
关于消息提示框(MessageBox)引起的一个奇怪的错误
原先以为消息提示框(MessageBox)就是弹出一个通知而已,对程序并没有什么影响。结果因为这个观点,程序调了好久...代码如下:case LOGOK:{ this.DialogResult = DialogResult.OK; MessageBox.Show(msgArgs.message); break;}即,在登录成功之后,会弹出一原创 2012-02-22 10:22:13 · 2621 阅读 · 0 评论 -
C# UI积累
做个积累,MFC原先也有,结果丢了。 (1)添加鼠标右键弹出菜单1>在“菜单和工具栏”中选择"ContextMenuStrip"(比较奇怪,为什么不直接叫ContextMenu就好,还加个条?)注意:"ContextMenuStrip"是一个组件,刚开始并不显示2>在需要显示右键弹出菜单的容器与创建的"ContextMenuStrip"进行绑定一般的容器都有属性"Context原创 2011-11-25 13:43:34 · 804 阅读 · 0 评论 -
对话框修改名称(重命名)
如果是在對話框內操作:直接SetWindowText((LPCTSTR)RetryCaption);就可以了。如果是在外部操作對話框:::SetWindowText(dlg.m_hWnd,(LPCTSTR)RetryCaption); 示例:void CTestDlg::OnPo原创 2011-07-08 19:29:08 · 2303 阅读 · 0 评论 -
MFC应用程序中处理消息的顺序
转载自:http://hi.baidu.com/zxchao/blog/item/fd96648db87ae711b31bbac2.htmlMFC应用程序中处理消息的顺序1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCall转载 2011-07-27 14:00:09 · 400 阅读 · 0 评论 -
VC下新建工程时未添加winsock的补救措施
1. 在stdafx.h中添加头文件afxsock.h#include 2. 在你的App的InitInstance()函数的开头加入 if (!AfxSocketInit()){ AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE;}3. 在项目已有的类的实现文件(.cpp文件)中,添加头文件stdafx.原创 2011-10-20 15:08:27 · 880 阅读 · 0 评论 -
C# ListView的使用
知识准备:(1) ListView中包含一个ListViewItems的集合,即ListView的属性Items的add()方法只能添加ListViewItem类型的值(一般需要添加自己的消息类型的话,需要新创建类,并继承ListViewItem类型)(2) ListView有一个SmallImageList属性和LargeImageList属性,分别指向大图标视图(LargeIco原创 2011-11-23 15:19:31 · 1224 阅读 · 0 评论 -
Windows下多线程常用函数
1.线程创建该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄。HANDLE CreateThread(LPSECURITY_ATTRIBUTESlpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINElpStartAddress, LPVOID lpParameter, DWORDdwCrea原创 2011-11-03 16:13:14 · 2382 阅读 · 0 评论 -
关于单选按钮的使用
使用之前说明:在MFC对话框中添加单选按钮时,需要在其属性中选中“组”选项,否则系统无法确定哪几个单选按钮属于同一个组;如果有多个地方需要用到单选按钮,则分别给每次添加组框,并选中“组”选项。同一个组里只能有一个单选按钮被选中(需要自己实现,之后介绍)。(1)获取单选按钮的选中状况方法一:右键点击单选按钮,选择“建立类向导”,选择“成员变量”选项卡,为单选按钮添加"Valu原创 2011-10-21 10:24:40 · 2892 阅读 · 0 评论 -
Parsing error
在MFC中对话框对应类中可能会出现错误: Parsing error引起的原因大概可以分为两种:1. 有部分成员变量没有初始化。有构造函数的类型对应变量会由系统自动调用其构造函数进行初始化,但基本类型的成员变量必须注意,尤其是基本类型的数组。2. 与控件无关的成员要放在AFX_DATA_INIT宏外面。宏里面应该对应控件相关成员变量的初始化。出现这两种状况时,对应自动类向导 .原创 2011-07-27 15:12:38 · 6015 阅读 · 0 评论 -
GUI界的大战: QT VS GTK
在经历了大概半年的折腾之后,决定换个GUI工具。MFC太麻烦了!转载:http://blog.csdn.net/dai_weitao/article/details/1752983 Qt 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech公司出品,目前包括Qt, 基于 Framebuffer 的 Qt Embedded,快速开发工具 Qt Designer,国际化工具转载 2011-07-26 15:29:31 · 1457 阅读 · 0 评论 -
断言错误:ASSERT(ContinueModal())
在MFC中做一个小程序,调试的时候总是出现如下错误:Debug Assertion Failed!原因未知,然后按提示点击“调试”,然后进入代码:ASSERT(ContinueModal());也就是说在这儿产生了断言错误,即程序的某部分不符合对程序的设想,一般是条件不满足或错误而导致这类错误。后来在CSDN(http://topic.csdn.net/t/20060308原创 2011-11-03 14:30:15 · 6118 阅读 · 2 评论 -
CListBox的若干操作
1. 取列表中当前选中的值(主要涉及到CString到LPTSTR类型的转换)方法一: int iSel=m_list.GetCurSel(); CString tip; int len; len=m_list.GetTextLen(iSel); m_list.GetText(iSel, tip.GetBuffer(len)); AfxMessageBox(str);原创 2011-07-09 12:40:49 · 1772 阅读 · 0 评论 -
MFC中模式对话框和非模式对话框的区别介绍
使用有模式对话框时在对话框弹出后调用函数不会立即返回,而是等到对话框销毁后才会返回(请注意在对话框弹出后其他窗口的消息依然会被传递)。所以在使用对话框时其他窗口都不能接收用户输入。创建有模式对话框的方法是调用CDialog::DoModal()。下面的代码演示了这种用法:CYourView::OnOpenDlg(){CYourDlg dlg;int iRet=dlg.DoMod原创 2011-07-08 14:30:00 · 826 阅读 · 0 评论 -
通过多线程为基于 .NET 的应用程序实现响应迅速的用户
转自:http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misMultithreading.mspx?mfr=true本文假设您熟悉 .NET、C# 和 Windows 窗体下载本文的代码: Multithreading.exe (106KB)摘要如果应用程序在转载 2011-12-20 10:13:30 · 1021 阅读 · 0 评论 -
在该控件上执行的操作正从错误的线程调用。使用 Control.Invoke 或 Control.BeginInvoke 封送到正确的线程才能执行此操作。
环境:C# VS2010 .NET 4.0错误原因:在多线程中,窗体控件的元素不是线程安全的。除了UI线程,其他线程不可以对控件进行操作;解决办法:(1) 可以通过异步委托调用来调用控件的方法来实现注意:一般的委托是以同步方式来实现的BeginInvoke();返回类型:IAsyncResultEndInvoke();传入IAsyncResult,返回原创 2011-12-20 10:50:44 · 3295 阅读 · 0 评论 -
C# 为TreeView中的子节点添加单击事件
文章名字为单击事件,实际上双击等事件的操作类似说明:(1) TreeView中的Nodes[] 本身是没有单击、双击事件的,但是TreeView本身这些事件都有;(2) TreeView中有一个属性:SelectedNode,该属性可以获取或设置当前选中的节点;因此,结合点(1)和(2),就可以做出一个类似于TreeView中的子节点单击事件实例代码:(1) 为TreeVi原创 2011-12-20 13:28:45 · 16888 阅读 · 4 评论 -
C# 窗体的几个主要事件
(1) Load()事件在对象实例化,窗体可见之前发生。此时窗体处于实例化过程中,但还不可见(2) Activated()事件在窗体处于可见状态并处于当前状态时发生。刚开始不太明白,后来发现,每当窗体有变化时,该事件就会被触发。(3) Shown()事件在窗体显示之后发生,即加载完所有控件,并显示对话框后,触发该事件(4) Closing()事件在窗体关闭时发生原创 2011-12-19 14:23:33 · 2599 阅读 · 0 评论 -
对话框中对回车的处理
在MFC中,回车执行焦点所在控件对应的操作。但如果操作类的控件没有焦点时,回车会自动执行OnOK()函数,如果不重写该函数的话,则它会自动退出。为了防止在回车之后自动退出,需要程序员自己控制消息流的方式来改变默认的操作。百度百科 - PreTranslateMessagePreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的原创 2011-07-27 14:30:06 · 737 阅读 · 0 评论 -
窗口未显示时,操作窗口的注意事项
做的时候碰到点问题,随便总结一下主要碰到的情况为:需要隐藏一个窗口,使之未显示使用的代码如下:public void hideForm(){ this.Show(); this.ShowInTaskbar = false; this.WindowState = FormWindowState.Minimized;}即,已经调用Show()原创 2012-03-21 14:10:27 · 759 阅读 · 0 评论