📄 huanchongqufenxi.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
namespace WindowsApplication1
{
public partial class huanchongqufenxi : Form
{
IGeoFeatureLayer pgeolayer;
public int layerIndex = 0;
//ITable pConnectionTable;
IFeatureLayer pFeatureLayer;
public IMap pMap;
public string pRenderField;
string pRenderField1, pRenderField2, pRenderField3;
// public int no;
public bool pBool;
public bool[] pBoollean;
public bool Buffer;
public huanchongqufenxi()
{
InitializeComponent();
}
private void huanchongqufenxi_Load(object sender, EventArgs e)
{
for (int k = 0; k < pMap.LayerCount; k++)
comboBox1.Items.Add(pMap.get_Layer(k).Name);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
listBox1.Items.Clear();
IFeatureClass pFeatureClass;
IField pField;
IFields pFields;
layerIndex = comboBox1.SelectedIndex;
pFeatureLayer = (IFeatureLayer)pMap.get_Layer(comboBox1.SelectedIndex);
pgeolayer = pFeatureLayer as IGeoFeatureLayer;
pFeatureClass = (IFeatureClass)pFeatureLayer.FeatureClass;
IDisplayTable mytable = (IDisplayTable)pFeatureLayer;
pFields = mytable.DisplayTable.Fields;
pBoollean = new bool[pFields.FieldCount];
for (int j = 0; j < pFields.FieldCount; j++)
{
pField = (IField)pFields.get_Field(j);
if (pField.Name == pField.AliasName && pField.Name != "FID" && pField.Name != "Shape")
{
listBox1.Items.Add(pField.Name);
if (pField.Type == esriFieldType.esriFieldTypeInteger || pField.Type == esriFieldType.esriFieldTypeSmallInteger || pField.Type == esriFieldType.esriFieldTypeDouble || pField.Type == esriFieldType.esriFieldTypeSingle)
pBoollean[j] = true;
else
pBoollean[j] = false;
}
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
IFeatureLayer pLayer;
IDataStatistics pDataStatics;
ICursor pCursor;
IQueryFilter pQueryFilter;
pQueryFilter = new QueryFilterClass();
pQueryFilter.AddField(listBox1.SelectedItem.ToString());
pLayer = (IFeatureLayer)pMap.get_Layer(comboBox1.SelectedIndex);
IDisplayTable mytable = (IDisplayTable)pLayer;
pCursor = (ICursor)mytable.SearchDisplayTable(pQueryFilter, false);
pDataStatics = new DataStatisticsClass();
pDataStatics.Field = listBox1.SelectedItem.ToString();
pDataStatics.Cursor = pCursor;
listBox2.Items.Clear();
System.Collections.IEnumerator pEnumVariantSimple;
pEnumVariantSimple = (System.Collections.IEnumerator)pDataStatics.UniqueValues;
pEnumVariantSimple.Reset();
while (pEnumVariantSimple.MoveNext())
{
object value = pEnumVariantSimple.Current;
listBox2.Items.Add(value.ToString());
}
listBox2.Refresh();
pRenderField1 = listBox1.SelectedItem.ToString();
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
pBool = pBoollean[listBox1.SelectedIndex + 2];
pRenderField3 = listBox2.SelectedItem.ToString();
if (pBool == false)//判断字段是否字符串型
pRenderField3 = "'" + pRenderField3 + "'";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button7_Click(object sender, EventArgs e)
{
if (Buffer == true)
{
this.Close();
return;
}
IActiveView pActiveView;
pActiveView = (IActiveView)pMap;
IFeature pFeature;
IQueryFilter pQueryFilter;
pQueryFilter = new QueryFilterClass();
pQueryFilter.WhereClause = pRenderField;
IFeatureCursor pFeatureCursor;
IFeatureLayer pLayer;
pLayer = (IFeatureLayer)pMap.get_Layer(comboBox1.SelectedIndex);
IDisplayTable mytable = (IDisplayTable)pLayer;
pFeatureCursor = (IFeatureCursor)mytable.SearchDisplayTable(pQueryFilter, false);
pFeature = pFeatureCursor.NextFeature();
while (pFeature != null)
{
pMap.SelectFeature(pFeatureLayer, pFeature);
pFeature = pFeatureCursor.NextFeature();
}
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
}
private void button8_Click(object sender, EventArgs e)
{
pRenderField = "";
this.Close();
}
private void button1_Click(object sender, EventArgs e)
{
pRenderField2 = ">";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button2_Click(object sender, EventArgs e)
{
pRenderField2 = "<";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button3_Click(object sender, EventArgs e)
{
pRenderField2 = ">=";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button4_Click(object sender, EventArgs e)
{
pRenderField2 = "<=";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button5_Click(object sender, EventArgs e)
{
pRenderField2 = "=";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
private void button6_Click(object sender, EventArgs e)
{
pRenderField2 = "<>";
pRenderField = pRenderField1 + pRenderField2 + pRenderField3;
textBox1.Text = pRenderField;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -