我正在以编程方式打开和关闭此控件,以便用户在控件中有物品时可以打开控件。
我遇到了一些麻烦,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 :(得分:0)
好的......来自Telerik的Hristo:
关于你的问题:
RadDropDownList.CloseDropDown方法在内部调用在弹出对象实例上定义的ClosePopup。
实际上,如果要调用箭头按钮或RadDopDownList.ShowDropDownMethod的PerformClick方法,则没有太大区别。 PerformClick方法将切换弹出状态,如果打开它将关闭它,反之亦然。