醒目:比较难的问题,给提议的也发分。

Daniel22_cn 2005-04-07 10:44:32
问题描述如下:

1.我有一个UserCtrol控件,其上有一个Edit控件,我把它放到一个WinForm上,此时,当焦点处于Edit控件时,无法捕捉Winform的Key事件,因此在User控件上自定义了一个时间OnKeyPressed,当Edit控件中发生KeyDown或者KeyUp时触发该用户自定义事件,但在实际使用过程中发现,虽然自定义事件可以被正常出发,但Edit控件中会填入用户按键的字符,例如,当用户按下P时,用户时间被触发,但Edit控件中会被填入字符P,当常按字符P产生一连串的Key时间的时候,不再产生Keyup事件,无法满足实际使用的需要,请教,有没有什么代替方案,可以使Key事件被主窗体处理。如果主窗体不处理该事件,再由用户控件处理。

2.我有一个ListCtrl控件,如何使单击ListCtrl的某一行无效,其他则可以。

3.有什么好的控件(类似于DataGrid)比较有利于用户输入和编辑数据的,比如用户在第一列输入了一个字符,按下了回车键,程序接受该输入,并将关联的数据填入第二、三列,增加一列,定位光标到第一列,继续接受用户输入。

一次问这么多问题,希望大家帮忙解决。
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Daniel22_cn 2005-04-11
  • 打赏
  • 举报
回复
给分了。。其实很简单只要把e.Handled设置为True就可以了。

但是我觉得Microsft也够变态,KeyPress事件有些字符不传递。还要重新派生一个TextBox,然后改写IsInputKey,在里面直接写上return true才行。。
Daniel22_cn 2005-04-07
  • 打赏
  • 举报
回复
请问如何写属性?

那个控件应该到哪里找?
wh8254 2005-04-07
  • 打赏
  • 举报
回复
1 . 可以考虑写属性!
cugo 2005-04-07
  • 打赏
  • 举报
回复
3.试试ComponentOne的C1TrueDBGrid ,一个比较强大的DataGrid控件
wingnal 2005-04-07
  • 打赏
  • 举报
回复
学习ing
syeerzy 2005-04-07
  • 打赏
  • 举报
回复
我的建议是你看看微软怎么做的。反正系统东西随便就反汇编出来了
Daniel22_cn 2005-04-07
  • 打赏
  • 举报
回复
zhzuo(秋枫) ( )
我使用的正是这种方法,问题是,在主窗体接收到事件以前,文本框中已经会填入你打入的字符了。

我需要在字符被自动填入之前由主程序来判断是否要填入。。。。

有什么好的建议吗?
marvelstack 2005-04-07
  • 打赏
  • 举报
回复
你需要增加一个一个自定义事件来传递给主窗体进行处理。
try
http://blog.csdn.net/zhzuo/archive/2004/11/30/199599.aspx

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧