2017-04-07 59 views
1

我正在編程打開和關閉此控件,以便用戶在控件打開後,只要它們中有物品,一旦它們落地就會打開。在Telerik RadDropDownList popup vs dropdown

我對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); 

我的問題是(而且我已經研究過它,但目前爲止沒有發現任何東西) - 這兩種工作解決方案有什麼區別?

+0

您是否試過反編譯'ShowDropDown'和'CloseDropDown'方法並檢查它們的實現方式? –

+0

不,這是我目前技能水平以上的幾個步驟。如果我轉到了CloseDropdown的定義://從屏幕上點擊彈出窗口。而ClosePopUp狀態//關閉IPopupControl。也許關閉和隱藏某些東西是有區別的。我也有一個與Telerik公開的問題,並且將會更新我發現的內容。 –

回答

0

OK ......從斯托伊奇在Telerik的:

關於你的問題:

RadDropDownList.CloseDropDown方法內部調用它,在彈出的對象實例定義的ClosePopup。

實際上,如果您要調用箭頭按鈕的PerformClick方法或RadDopDownList.ShowDropDownMethod,則沒有多大區別。 PerformClick方法將切換彈出狀態,如果打開將關閉它,反之亦然。

相關問題