首页 > 解决方案 > 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 任何解决方案?

标签: vb.net

解决方案


如果您将处理程序添加到当时KeyDown当前引用的对象的事件中,e.Control则在该处理程序中,相同的对象将是sender. 引发事件的对象总是通过sender参数提供。这意味着,在您的cell_KeyDown方法中,您需要这样做:

DirectCast(sender, ComboBox).DroppedDown = False

推荐阅读