`
yangshen998
  • 浏览: 1302187 次
文章分类
社区版块
存档分类
最新评论

工作学习笔记——comboBox抢占焦点问题,以及工作学习的想法

 
阅读更多

.Net快速开发很便利,但有时总会碰到一些不痛不痒的小问题,让人无从下手解决。比如这个断断续续折磨了我好几天的comboBox抢占焦点问题。

窗体上有一个comboBox,还有一些其他控件也需要接收键盘输入。在没有操作comboBox之前,一切都是正常的,键盘事件流到了我预设的窗体按键事件处理函数里。但是,只要操作了comboBox,似乎它以后就独占了输入焦点,无论是窗体还是其它控件,都无法再接到按键事件。

我尝试了一些方法,包括使用窗体的KeyPreview、WndProc处理函数,使用focus()将焦点设给其他控件等,总是不能完美解决。感到可能和win form的UI消息传递机制有关,在MSDN上看了一些文章又言之泛泛,深入一些的介绍不知道去哪里找。直到我换了几个英文搜索关键词,在stackoverflow上扫到了这个帖子上的一条语句


"this.ActiveControl = null;"


一切恢复了正常,只是我仍然云里雾里,不能确切知道这条语句背后的道理。

这次艰辛的解决问题的过程让我有了一些想法:

1.stackoverflow真是个好网站,好多问题在它上面都有明确清晰的答案(别处还找不到另外靠谱的)。只是我们要习惯多用google,多用英文搜索词。其实对于程序员来说,这并不困难,控件名称、函数名称、错误关键字,这些英文关键字都是我们平时工作中不得不面对的。


2.多尝试、多想方法,不要在一条路上耗费太多时间。在写这篇文章的时候,我又想到可以放几个文本框到窗体上,看看和comboBox并存时,焦点能不能切换。常理告诉我们,应该是可以的。这起码会引出另外一些思路。


3.要想用好一样东西真是很难,尤其是规模大到windows这种程度。我可以说,用一两年时间精通了BREW技术,知其然也知其所以然。但是windows,恐怕需要3~5年。刚工作的时候,可以有大把的时间学习钻研。但是几年之后,当你肩上的担子越来越重,而面对的问题的规模的增长速度,超出了能力的增长速度,又该如何是好呢?我现在的状况是,很多问题,都需要靠互联网搜索来解决。而网上的答案,很多时候只是一时一地的办法,并不能让你明白背后的道理。


4.我现在工作中处理的问题,很多前人已经处理过了。我们要花多少精力来重走别人走过的路,要不要抄捷径,什么时候可以走自己的路。


5.如果真的想钻研技术,再过个3~5年,我想我也可以了解windows,和其他一些现在看来巨大的东西的来龙去脉,不再有这些恐慌。做个受人尊敬的,能解决问题的工程师。但是要先搞清楚自己的目标,是要成为一个能工巧匠,还是别的什么角色。

分享到:
评论

相关推荐

    WPF学习笔记 ——主流桌面应用开发技术

    ### WPF学习笔记——主流桌面应用开发技术 #### 一、WPF简介 **Windows Presentation Foundation (WPF)** 是微软推出的下一代图形用户界面系统,它主要用于构建具备卓越视觉体验的Windows客户端应用程序。WPF不仅...

    Extjs学习笔记(-):ComboBox联动

    本篇学习笔记将深入探讨EXTJS中ComboBox的联动效果,即一个ComboBox的选择会触发另一个ComboBox的数据更新,以此来提供更丰富的交互体验。通过源码解析和工具应用,我们将了解如何构建和实现这种联动效果。 ...

    combobox数据绑定问题

    ### ComboBox 数据绑定问题详解 #### 一、概述 在.NET框架下的Windows Forms应用程序开发中,`ComboBox` 控件是非常常用的一个控件,主要用于提供给用户一个下拉列表以供选择。`ComboBox` 控件的数据绑定功能是其...

    C# WinForm 自定义ComboBox 显示颜色下拉框

    8. **样例代码**:在CustomControls文件夹中,可能包含了实现上述功能的源代码,包括自定义ComboBox类的定义、颜色列表的管理以及与UI交互的逻辑。通过阅读和分析这些代码,你可以了解具体的实现细节。 综上所述,...

    QML-自定义ComboBox

    在本文中,我们将深入探讨如何在Qt环境中使用QML实现一个自定义的ComboBox组件。ComboBox在用户界面设计中是一个常见的控件,它提供了一个下拉列表供用户选择,通常用于有限的选项展示。通过自定义ComboBox,我们...

    ComboBox组合框

    在本例中,我们将深入探讨ComboBox的基本使用方法,包括其创建、数据填充、事件处理以及样式设置。 1. 创建ComboBox控件 在Windows Forms或WPF应用程序中,可以使用设计工具(如Visual Studio)直接从工具箱拖拽...

    C#WinForm控件展系列之ComboBox组合框控件

    本篇文章将深入探讨C# WinForm中的一个重要控件——ComboBox组合框控件,它在用户界面设计中起着至关重要的作用。 ComboBox控件结合了文本输入框和下拉列表的功能,用户既可以手动输入文本,也可以从预设的选项列表...

    VB例子+学习笔记

    学习笔记部分则是作者在实践过程中对每个例子的思考与总结,包含了关键知识点的解析、代码逻辑的解读以及可能遇到的问题和解决方案。这不仅能够帮助读者快速理解和复现例子,还能引导他们养成良好的编程习惯和问题...

    解决combobox随窗口变化大小后不显示下拉列表问题

    首先,我们要理解Combobox的工作原理。Combobox通常有两种模式:简单模式和下拉模式。在简单模式下,Combobox只显示一个固定的文本项;而在下拉模式下,用户可以点击按钮展开下拉列表,从中选择一个项目。当窗口大小...

    ComboBox 控件隐藏 fieldLabel 不能隐藏问题解决

    在使用ComboBox控件时,有时我们可能遇到一个棘手的问题,即无法隐藏fieldLabel。这个问题在许多应用程序开发中都可能出现,特别是在使用特定框架或者库时。ComboBox是一个常用的UI组件,通常用于提供下拉选择列表,...

    ComboBox

    压缩包中的“ComboBox”文件,如果是一个代码库或库文件,可能包含了实现ComboBox功能的类库或模块,可以直接引入到项目中使用,简化开发工作。 综上所述,ComboBox是一个多功能且常用的控件,其API和示例文档为...

    自定义ComboBox

    总的来说,自定义ComboBox以显示TreeView是一项复杂的任务,需要深入理解和熟练掌握UI控件的工作原理,以及事件处理和数据绑定机制。通过不断地测试和优化,可以创建出既实用又美观的自定义控件,提高应用程序的用户...

    easyui datagrid 行编辑中combogrid和combobox显示问题

    修改上一个资源版本中结束编辑时combobox显示问题. 1、类型为combogrid时每行的参数不同查询返回对应的数据结果。 2、类型为combobox时,输入框显示图标按钮,实现对应的事件。 3、解决类型为combobox显示为value而...

    ExtJS4中文教程2 开发笔记 chm

    Extjs4开发笔记(一)——准备工作 关于Extjs4开发笔记(二)的补充说明 在Extjs4应用中使用Ext.Loader ======================================= 11条jquery常用技巧和方法整理列表 8个超棒的学习jQuery的网站 ...

    C# winforms ComboBox 重绘

    在C# WinForms开发中,ComboBox控件是一个常用的组件,用于提供下拉列表供用户选择。然而,有时候我们可能需要自定义ComboBox...通过学习和实践这些知识点,你可以创建出功能丰富且符合设计需求的自定义ComboBox控件。

    C#comboBox简单实例

    首先,`comboBox`的基本用法包括添加项目、设置默认选中项以及处理用户的选择。在C#中,你可以使用`Items`属性来添加或删除选项。例如: ```csharp comboBox1.Items.Add("Option1"); comboBox1.Items.Add("Option2...

    winform combobox 模糊查询

    在Windows Forms应用程序中,ComboBox控件是常用的交互元素,它允许用户从一组预定义的选项中选择一个。在某些情况下,我们可能希望实现ComboBox的模糊查询功能,这使得用户可以通过输入部分文本快速查找并选择所需...

    C# 自定义控件 自定义ComboBox

    在.NET Framework中,C#是一种常用的编程语言,用于构建Windows桌面应用程序、Web应用程序以及移动应用程序。自定义控件是C#编程中一个重要的概念,它允许开发者根据需求扩展或修改内置控件的功能和外观,以满足特定...

    ComboBox自绘边框颜色等

    通过学习和实践这些步骤,你将能够熟练地自定义ComboBox的外观,实现独特的设计效果。 总结来说,ComboBox自绘是Windows编程中的一项进阶技巧,它允许开发者完全掌控控件的视觉表现,从而实现更加丰富和个性化的...

    【VB.NET】WinForm扩展TextBox和ComboBox控件:仿百度搜索框(输入文本智能模糊提示说明、自动匹配过滤)

    ComboBox控件可以输入文本也可以提供列表来选择项,而且还自带有属性来实现自动匹配,但是它有一个弊端,只能从头开始匹配,例如"张三丰",输入"三"或“三丰”是匹配不了。该自定义控件利用visual studio2017开发,...

Global site tag (gtag.js) - Google Analytics