在 Telerik RadDropDownList 弹出窗口与下拉列表中
in 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);
我的问题是(我已经研究过了,但到目前为止还没有发现任何问题)- 这两个可行的解决方案之间有什么区别?
好的...来自 Telerik 的 Hristo:
关于您的问题:
RadDropDownList.CloseDropDown 方法在内部调用在弹出对象实例上定义的 ClosePopup。
实际上,调用箭头按钮或RadDopDownList.ShowDropDownMethod的PerformClick方法并没有太大区别。 PerformClick 方法将切换弹出状态,如果打开它将关闭它,反之亦然。
我正在以编程方式打开和关闭此控件,以便用户在其中有项目时立即打开该控件。
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);
我的问题是(我已经研究过了,但到目前为止还没有发现任何问题)- 这两个可行的解决方案之间有什么区别?
好的...来自 Telerik 的 Hristo:
关于您的问题:
RadDropDownList.CloseDropDown 方法在内部调用在弹出对象实例上定义的 ClosePopup。
实际上,调用箭头按钮或RadDopDownList.ShowDropDownMethod的PerformClick方法并没有太大区别。 PerformClick 方法将切换弹出状态,如果打开它将关闭它,反之亦然。