在Telerik RadDropDownList popup vs dropdown

时间:2017-04-07 19:22:55

标签: c# telerik

我正在以编程方式打开和关闭此控件,以便用户在控件中有物品时可以打开控件。

我遇到了一些麻烦,Telerik的支持已经解决了。 但是他们的解决方案使用了与我不同的方法(与他们的解决方案无关,这是别的)。

要使控件打开,我正在这样做(有效):

 private void order_con_name_DD_GotFocus(object sender, EventArgs e)
        {
            if (!order_con_name_DD.IsPopupVisible)
            {
                order_con_name_DD.ShowDropDown();

但是,他们建议使用此功能(也可以使用)

 private void order_con_name_DD_GotFocus(object sender, EventArgs e)
    {
        if (!order_con_name_DD.IsPopupVisible)
        {
            RadElement element = this.order_con_name_DD.DropDownListElement.ElementTree.GetElementAtPoint(this.order_con_name_DD.DropDownListElement.PointFromScreen(Control.MousePosition));
            if (!(element is RadDropDownListArrowButtonElement))
            {
                this.order_con_name_DD.DropDownListElement.ArrowButton.PerformClick();
            }
        }
    }

关闭控件我正在做这个(有效):

 private void DropDownList_PopupOpened(object sender, EventArgs e)
        {
           if (order_con_name_DD.IsPopupVisible)
            {
                order_con_name_DD.CloseDropDown();

他们的解决方案使用:

 private void DropDownList_PopupOpened(object sender, EventArgs e)
        {
           if (order_con_name_DD.IsPopupVisible)
            {
                order_con_name_DD.Popup.ClosePopup(RadPopupCloseReason.Keyboard);

我的问题是(我已经研究过,但到目前为止还没有找到任何东西) - 这两种工作方案有什么区别?

1 个答案:

答案 0 :(得分:0)

好的......来自Telerik的Hristo:

关于你的问题:

RadDropDownList.CloseDropDown方法在内部调用在弹出对象实例上定义的ClosePopup。

实际上,如果要调用箭头按钮或RadDopDownList.ShowDropDownMethod的PerformClick方法,则没有太大区别。 PerformClick方法将切换弹出状态,如果打开它将关闭它,反之亦然。