vb.net - VB 网络中 EditingControlShowing 中的 addhandler
问题描述
我在 DataGridView_EditingControlShowing 中有这段代码
If TypeOf e.Control Is ComboBox Then
With DirectCast(e.Control, ComboBox)
.DropDownStyle = ComboBoxStyle.DropDown
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoCompleteSource = AutoCompleteSource.ListItems
.DroppedDown = False
End With
AddHandler e.Control.KeyDown, AddressOf cell_KeyDown
End If
我想要 addhandler 当按键制作 (DirectCast(e.Control, ComboBox).DroppedDown = False ) 但它的地址是指我不能使用 e.control 的外部子。因为 e.control 仅适用于 DataGridView_EditingControlShowing 事件 sub 任何解决方案?
解决方案
如果您将处理程序添加到当时KeyDown
当前引用的对象的事件中,e.Control
则在该处理程序中,相同的对象将是sender
. 引发事件的对象总是通过sender
参数提供。这意味着,在您的cell_KeyDown
方法中,您需要这样做:
DirectCast(sender, ComboBox).DroppedDown = False
推荐阅读
- regex - 使用 REGEX 从 URL 中提取特定文本
- php - 限制购物车只能包含 1 个“品牌”
- react-native - 反应本机应用程序中的HTML文本,如何包含?
- javascript - 如何使用 Parcel Bundler 包含外部 JS 库,如 jQuery、jQuery DataTable、Charts.js?
- javascript - 我不知道如何在 sequelize (Mac) 中使用 POST 方法
- python - 在循环中创建多个绘图的 Python 方法?
- delphi - 升级到 Delphi 10.4 Sydney 时缺少 ToolsAPI 接口方法的实现
- php - AWS beanstalk 上的 PHP Composer
- c# - Asp.Net Core Razor Pages 迁移到版本 3.1 后 AJAX 请求失败
- flutter - Flutter RefreshIndicator 与 FutureBuilder