1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
//------------------------------------------------------------------------------
// <copyright file="UnsettableComboBox.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
namespace System.Web.UI.Design.MobileControls.Util
{
using System;
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
// Standard combobox with a "Not Set" item as the first item in its dropdown.
// It also automatically blanks out the "Not Set" item on losing focus.
[
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand,
Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)
]
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
internal class UnsettableComboBox : ComboBox
{
private String notSetText;
private String notSetCompactText;
internal UnsettableComboBox()
{
notSetText = SR.GetString(SR.UnsettableComboBox_NotSetText);
notSetCompactText = SR.GetString(SR.UnsettableComboBox_NotSetCompactText);
}
internal String NotSetText
{
get
{
return notSetText;
}
set
{
notSetText = value;
}
}
internal String NotSetCompactText
{
get
{
return notSetCompactText;
}
set
{
notSetCompactText = value;
}
}
public override String Text
{
get
{
// handle DropDown styles in Templating Options dialog
// if (this.SelectedIndex == 0) || (this.SelectedIndex == -1))
if (this.SelectedIndex == 0)
{
return String.Empty;
}
else
{
return base.Text;
}
}
set
{
if (value == notSetCompactText)
{
base.Text = String.Empty;
}
else
{
base.Text = value;
}
}
}
internal void AddItem(Object item)
{
EnsureNotSetItem();
Items.Add(item);
}
internal void EnsureNotSetItem()
{
if (Items.Count == 0)
{
Items.Add(notSetText);
}
}
#if UNUSED_CODE
internal bool IsSet()
{
return SelectedIndex > 0;
}
#endif
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
if (SelectedIndex == 0)
{
SelectedIndex = -1;
}
}
protected override void SetItemsCore(IList values)
{
Items.Clear();
if (!DesignMode)
{
Items.Add(notSetText);
}
// Unfortunately. the interfaces between SetItemsCore and
// AddItemsCore are mismatched as of 3106.
ArrayList items = new ArrayList();
foreach(Object item in values)
{
items.Add(item);
}
base.AddItemsCore(items.ToArray());
}
}
}
|