控制各个自定义图层显示

控制各个自定义图层显示
在载入图层的时候就将各图层名称丢入到子控件的layerList中,并调用ShowLayers()来把各个图层显示出来并加上CheckBox来控制图层的显示。
         /**/ /// <summary>
        
/// 显示图层名称
        
/// </summary>

         public   void  ShowLayers()
        
{
            checkedListBoxLayerControl.Items.Clear();
            
foreach(string layer in layers) {
                checkedListBoxLayerControl.Items.Add(layer);
            }

        }
用到了CheckedListBox控件。
         /**/ /// <summary>
        
/// 全选按钮改变Checked状态时
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

         private   void  checkBoxAll_CheckedChanged( object  sender, EventArgs e)
        
{

            
if (checkBoxAll.Checked)
            
{
                
//被选择了则将CheckedListBox中的所有条目都变为Checked状态
                for (int i = 0; i < checkedListBoxLayerControl.Items.Count; i++)
                    checkedListBoxLayerControl.SetItemCheckState(i, CheckState.Checked);
            }
else {
                
//否则变成Unchecked状态
                for (int i = 0; i < checkedListBoxLayerControl.Items.Count; i++)
                    checkedListBoxLayerControl.SetItemCheckState(i, CheckState.Unchecked);               
            }

        }


        
/**/ /// <summary>
        
/// CheckedListBox中的条目改变Checked状态时
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

         private   void  checkedListBoxLayerControl_ItemCheck( object  sender, ItemCheckEventArgs e)
        
{
            
if (e.NewValue == CheckState.Checked)
            
{
                
//被选择了则显示相应图层
                mapControl.Map.Layers[checkedListBoxLayerControl.Items[e.Index].ToString()].Enabled = true;               
            }
else {
                
//否则隐藏相应图层
                mapControl.Map.Layers[checkedListBoxLayerControl.Items[e.Index].ToString()].Enabled = false;
            }

        }
本来想做成只要Uncheck一个图层,CheckAll就会自动变成Unchecked状态,但是实际当中如果这样做的话会影响其他的一些功能,暂且不这样做,等后面想好了再重构。

---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian

你可能感兴趣的:(控制各个自定义图层显示)