public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            ITerrainObject obj = context.Instance as ITerrainObject;
              if (obj == null)
            return null;
              TerrainShape terrain = obj.OwnerTerrain;
              if (terrain == null)
            return null;

              frmsvr = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
              if (frmsvr == null)
            return null;

              GUI.DynamicImageList il = new GUI.DynamicImageList(32);
              _comboBox.BeginUpdate();
              _comboBox.Items.Clear();
              _comboBox.SmallImageList = il.ImageList;
              int iSelIndex = -1;

              if (_bSupportsNoneTexture)
              {
            ListViewItem item = new ListViewItem("None");
            item.Tag = null;
            item.ImageIndex = -1;
            _comboBox.Items.Add(item);
              }

              foreach (DetailTextureResource tex in terrain.DetailTextures)
              {
            if (tex._bIsBaseTexture && !_bSupportsBaseTexture)
              continue;

            ListViewItem item = new ListViewItem(tex.ToString());
            item.Tag = tex;
            item.ImageIndex = il.AddBitmap(EditorManager.Project.MakeAbsolute(tex.DiffuseFilename), System.Drawing.Color.Magenta);
            _comboBox.Items.Add(item);

            if (tex == value)
            {
              item.Selected = true;
              iSelIndex = item.Index;
            }
              }
              _comboBox.EndUpdate();

              if (iSelIndex>=0)
            _comboBox.EnsureVisible(iSelIndex);

              using (EditorManager.ActiveView.AcquireModal())
              {
            frmsvr.DropDownControl(_comboBox);
              }

              if (_comboBox.SelectedItems.Count == 1)
            return _comboBox.SelectedItems[0].Tag as DetailTextureResource;
              return null;
        }
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value)
        {
            ITerrainObject obj = context.Instance as ITerrainObject;

            if (obj == null)
            {
                return(null);
            }
            TerrainShape terrain = obj.OwnerTerrain;

            if (terrain == null)
            {
                return(null);
            }

            frmsvr = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
            if (frmsvr == null)
            {
                return(null);
            }

            GUI.DynamicImageList il = new GUI.DynamicImageList(32);
            _comboBox.BeginUpdate();
            _comboBox.Items.Clear();
            _comboBox.SmallImageList = il.ImageList;
            int iSelIndex = -1;

            if (_bSupportsNoneTexture)
            {
                ListViewItem item = new ListViewItem("None");
                item.Tag        = null;
                item.ImageIndex = -1;
                _comboBox.Items.Add(item);
            }

            foreach (DetailTextureResource tex in terrain.DetailTextures)
            {
                if (tex._bIsBaseTexture && !_bSupportsBaseTexture)
                {
                    continue;
                }

                ListViewItem item = new ListViewItem(tex.ToString());
                item.Tag        = tex;
                item.ImageIndex = il.AddBitmap(EditorManager.Project.MakeAbsolute(tex.DiffuseFilename), System.Drawing.Color.Magenta);
                _comboBox.Items.Add(item);

                if (tex == value)
                {
                    item.Selected = true;
                    iSelIndex     = item.Index;
                }
            }
            _comboBox.EndUpdate();

            if (iSelIndex >= 0)
            {
                _comboBox.EnsureVisible(iSelIndex);
            }

            using (EditorManager.ActiveView.AcquireModal())
            {
                frmsvr.DropDownControl(_comboBox);
            }

            if (_comboBox.SelectedItems.Count == 1)
            {
                return(_comboBox.SelectedItems[0].Tag as DetailTextureResource);
            }
            return(null);
        }