深圳 电信 宽带 欺骗套餐被欺骗,投诉无果,该怎么办

ArcGIS实现右击打开属性表
主程序中,需要添加TOCControl和MapControl的对象,并实例化,设置setBuddy,在TOCContol的mouse
down事件中,添加右键菜单:
Load事件:
&& & & & & &m_ToolbarMenu =
new ToolbarMenuClass();
&& & & & &
&mandPool =
&& & & & &
&axTOCControl1.LabelEdit =
esriTOCControlEdit.esriTOCControlM
&& & & & & &m_tocControl =
(ITOCControl2)axTOCControl1.O
&& & & & & &m_mapControl =
(IMapControl3)axMapControl1.O
&& & & & &
&m_tocControl.SetBuddyControl(m_mapControl);
&& & & & &
&axToolbarControl1.SetBuddyControl(m_mapControl);
&& & & & &
&m_ToolbarMenu.SetHook(m_mapControl);
&& & & & & &m_menuMap = new
ToolbarMenuClass();
&& & & & & &m_menuLayer =
new ToolbarMenuClass();
&& & & & &
&axToolbarControl1.SetBuddyControl(axMapControl1);
&& & & & &
&axTOCControl1.SetBuddyControl(axMapControl1);
&&private void axTOCControl1_OnMouseDown(object
sender, ITOCControlEvents_OnMouseDownEvent e)
&& & & &{
&& & & & & &m_pLayer =
axMapControl1.Map.get_Layer(0);
&& & & & & &if (e.button !=
&& & & & &
&esriTOCControlItem item =
esriTOCControlItem.esriTOCControlItemN
&& & & & & &IBasicMap map =
&& & & & & &ILayer layer =
&& & & & & &object other =
&& & & & & &object index =
&& & & & &
&m_tocControl.HitTest(e.x, e.y, ref item, ref map, ref layer,
ref other, ref index);
&& & & & & &if (item ==
esriTOCControlItem.esriTOCControlItemMap)
&& & & & &
&& & & & & & &
&m_tocControl.SelectItem(map, null);
&& & & & &
&& & & & & &else
&& & & & &
&& & & & & & &
&m_tocControl.SelectItem(layer, null);
&& & & & &
&& & & & &
&m_mapControl.CustomProperty =
&& & & & & &if (item ==
esriTOCControlItem.esriTOCControlItemMap) m_menuMap.PopupMenu(e.x,
e.y, m_tocControl.hWnd);
&& & & & & &if (item ==
esriTOCControlItem.esriTOCControlItemLayer)
&& & & & &
&& & & & & & &
&m_menuLayer.PopupMenu(e.x, e.y, m_tocControl.hWnd);
&& & & & & & &
&m_menuLayer.AddItem(new OPAT(m_pLayer), -1, 0, true,
esriCommandStyles.esriCommandStyleTextOnly);
&& & & & & & &
&m_menuLayer.SetHook(m_mapControl);
&& & & & & & &
&m_menuLayer.Remove(1);
&& & & & &
&} &&
&& & & &}
还有自定义类,实际为BaseCommand类:
&&public sealed class OPAT :
BaseCommand
&& &{
&& & & &#region COM Registration
Function(s)
&& & & &[ComRegisterFunction()]
&& & & &[ComVisible(false)]
&& & & &static void
RegisterFunction(Type registerType)
&& & & &{
&& & & & & &// Required for
ArcGIS Component Category Registrar support
&& & & & &
&ArcGISCategoryRegistration(registerType);
&& & & & & &//
&& & & & & &//
TODO: Add any COM registration code here
&& & & & & &//
&& & & &}
&[ComUnregisterFunction()]
&& & & &[ComVisible(false)]
&& & & &static void
UnregisterFunction(Type registerType)
&& & & &{
&& & & & & &// Required for
ArcGIS Component Category Registrar support
&& & & & &
&ArcGISCategoryUnregistration(registerType);
&& & & & & &//
&& & & & & &//
TODO: Add any COM unregistration code here
&& & & & & &//
&& & & &}
&& & & &#region ArcGIS Component
Category Registrar generated code
&& & & &///
&& & & &/// Required method for
ArcGIS Component Category registration -
&& & & &/// Do not modify the
contents of this method with the code editor.
&& & & &///
&/summary&
&& & & &private static void
ArcGISCategoryRegistration(Type registerType)
&& & & &{
&& & & & & &string regKey =
string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}",
registerType.GUID);
&& & & & &
&MxCommands.Register(regKey);
&& & & & &
&ControlsCommands.Register(regKey);
&& & & &}
&& & & &///
&& & & &/// Required method for
ArcGIS Component Category unregistration -
&& & & &/// Do not modify the
contents of this method with the code editor.
&& & & &///
&/summary&
&& & & &private static void
ArcGISCategoryUnregistration(Type registerType)
&& & & &{
&& & & & & &string regKey =
string.Format("HKEY_CLASSES_ROOT\\CLSID\\{{{0}}}",
registerType.GUID);
&& & & & &
&MxCommands.Unregister(regKey);
&& & & & &
&ControlsCommands.Unregister(regKey);
&& & & &}
&& & & &#endregion
&& & & &#endregion
&& & & &private IHookHelper
m_hookHelper =
&& & & &ILayer m_pL
&& & & &private IMapControl3
&& & & &public OPAT(ILayer
&& & & &{
&& & & & & &//
&& & & & & &//
TODO: Define values for the public properties
&& & & & & &//
&& & & & & &base.m_category
= ""; //localizable text
&& & & & & &base.m_caption
= "打开属性表"; &//localizable text&
&& & & & & &base.m_message
= "打开属性表"; &//localizable text
&& & & & & &base.m_toolTip
= "打开属性表"; &//localizable text
&& & & & & &base.m_name =
"打开属性表"; & //unique id, non-localizable (e.g.
"MyCategory_MyCommand")
&& & & & & &m_pLayer =
&& & & & & &try
&& & & & &
&& & & & & & &
&& & & & & & &
&// TODO: change bitmap name if
&& & & & & & &
&& & & & & & &
&string bitmapResourceName = GetType().Name + ".bmp";
&& & & & & & &
&base.m_bitmap = new Bitmap(GetType(),
bitmapResourceName);
&& & & & &
&& & & & & &catch
(Exception ex)
&& & & & &
&& & & & & & &
&System.Diagnostics.Trace.WriteLine(ex.Message, "Invalid
&& & & & &
&& & & &}
&& & & &#region Overriden Class
&& & & &///
&& & & &/// Occurs when this command
is created
&& & & &///
&/summary&
&& & & &/// &param
name="hook"&Instance of the
application&/param&
&& & & &public override void
OnCreate(object hook)
&& & & &{
&& & & & & &if (hook ==
&& & & & & & &
&& & & & & &try
&& & & & &
&& & & & & & &
&m_hookHelper = new HookHelperClass();
&& & & & & & &
&m_hookHelper.Hook =
&& & & & & & &
&if (m_hookHelper.ActiveView == null)
&& & & & & & & &
& &m_hookHelper =
&& & & & &
&& & & & & &catch
&& & & & &
&& & & & & & &
&m_hookHelper =
&& & & & &
&& & & & & &if
(m_hookHelper == null)
&& & & & & & &
&base.m_enabled =
&& & & & & &else
&& & & & & & &
&base.m_enabled =
&& & & & & &m_mapControl =
(IMapControl3)
&& & & & & &//
TODO: &Add other initialization code
&& & & &}
&& & & &///
&& & & &/// Occurs when this command
is clicked
&& & & &///
&/summary&
&& & & &public override void
&& & & &{
&& & & & & &//
TODO: Add OPAT.OnClick implementation
&& & & & &
&OpenAttributeTableFrm attributeTable = new
OpenAttributeTableFrm();
&& & & & &
&attributeTable.CreateAttributeTable(m_pLayer);
&& & & & &
&attributeTable.ShowDialog();
&& & & &}
&& & & &#endregion
&& &}
新建Form中的代码,新建Form中要添加DataTable控件:
public partial class OpenAttributeTableFrm :
&& &{
&& & & &public DataTable
attributeT
&& & & &public
OpenAttributeTableFrm()
&& & & &{
&& & & & &
&InitializeComponent();
&& & & &}
&& & & &private void
OpenAttributeTableFrm_Load(object sender, EventArgs e)
&& & & &{
&& & & &}
&& & & &private static DataTable
CreateDataTableByLayer(ILayer pLayer, string tableName)
&& & & &{
&& & & & & &DataTable
pDataTable = new DataTable(tableName);
&& & & & & &ITable pTable =
pLayer as IT
&& & & & & &IField pField =
&& & & & & &DataColumn
&& & & & & &for (int i = 0;
i & pTable.Fields.FieldC i++)
&& & & & &
&& & & & & & &
&pField = pTable.Fields.get_Field(i);
&& & & & & & &
&pDataColumn = new DataColumn(pField.Name);
&& & & & & & &
&if (pField.Name == pTable.OIDFieldName)
&& & & & & & &
&& & & & & & & &
& &pDataColumn.Unique =
&& & & & & & &
&& & & & & & &
&pDataColumn.AllowDBNull = pField.IsN
&& & & & & & &
&pDataColumn.Caption = pField.AliasN
&& & & & & & &
&pDataColumn.DataType =
System.Type.GetType(ParseFieldType(pField.Type));
&& & & & & & &
&pDataColumn.DefaultValue = pField.DefaultV
&& & & & & & &
&if (pField.VarType == 8)
&& & & & & & &
&& & & & & & & &
& &pDataColumn.MaxLength = pField.L
&& & & & & & &
&& & & & & & &
&pDataTable.Columns.Add(pDataColumn);
&& & & & & & &
&& & & & & & &
&pDataColumn =
&& & & & &
&& & & & & &return
&& & & &}
&& & & &public static string
ParseFieldType(esriFieldType fieldType)
&& & & &{
&& & & & & &switch
(fieldType)
&& & & & &
&& & & & & & &
&case esriFieldType.esriFieldTypeBlob:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
&case esriFieldType.esriFieldTypeDate:
&& & & & & & & &
& &return "System.DateTime";
&& & & & & & &
&case esriFieldType.esriFieldTypeDouble:
&& & & & & & & &
& &return "System.Double";
&& & & & & & &
esriFieldType.esriFieldTypeGeometry:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
esriFieldType.esriFieldTypeGlobalID:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
&case esriFieldType.esriFieldTypeGUID:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
esriFieldType.esriFieldTypeInteger:
&& & & & & & & &
& &return "System.Int32";
&& & & & & & &
&case esriFieldType.esriFieldTypeOID:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
&case esriFieldType.esriFieldTypeRaster:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
&case esriFieldType.esriFieldTypeSingle:
&& & & & & & & &
& &return "System.Single";
&& & & & & & &
esriFieldType.esriFieldTypeSmallInteger:
&& & & & & & & &
& &return "System.int32";
&& & & & & & &
&case esriFieldType.esriFieldTypeString:
&& & & & & & & &
& &return "System.String";
&& & & & & & &
&default:
&& & & & & & & &
& &return "System.String";
&& & & & &
&& & & &}
&& & & &public static DataTable
CreateDataTable(ILayer pLayer, string tableName)
&& & & &{
&& & & & & &DataTable
pDataTable = CreateDataTableByLayer(pLayer, tableName);
&& & & & & &string
shapeType = getShapeType(pLayer);
&& & & & & &DataRow
pDataRow =
&& & & & & &ITable pTable =
pLayer as IT
&& & & & & &ICursor pCursor
= pTable.Search(null, false);
&& & & & & &IRow pRow =
pCursor.NextRow();
&& & & & & &int n =
&& & & & & &while (pRow !=
&& & & & &
&& & & & & & &
&pDataRow = pDataTable.NewRow();
&& & & & & & &
&for (int i = 0; i & pRow.Fields.FieldC
&& & & & & & &
&& & & & & & & &
& &if (pRow.Fields.get_Field(i).Type ==
esriFieldType.esriFieldTypeGeometry)
&& & & & & & & &
&& & & & & & & &
& & & &pDataRow[i] = shapeT
&& & & & & & & &
&& & & & & & & &
& &else if (pRow.Fields.get_Field(i).Type ==
esriFieldType.esriFieldTypeBlob)
&& & & & & & & &
&& & & & & & & &
& & & &pDataRow[i] = "Element";
&& & & & & & & &
&& & & & & & & &
&& & & & & & & &
&& & & & & & & &
& & & &pDataRow[i] = pRow.get_Value(i);
&& & & & & & & &
&& & & & & & &
&& & & & & & &
&pDataTable.Rows.Add(pDataRow);
&& & & & & & &
&pDataRow =
&& & & & & & &
&& & & & & & &
&if (n == 2000)
&& & & & & & &
&& & & & & & & &
&& & & & & & &
&& & & & & & &
&& & & & & & &
&& & & & & & & &
& &pRow = pCursor.NextRow();
&& & & & & & &
&& & & & &
&& & & & & &return
&& & & &}
&& & & &public static string
getShapeType(ILayer pLayer)
&& & & &{
&& & & & & &IFeatureLayer
pFeatLyr = (IFeatureLayer)pL
&& & & & & &switch
(pFeatLyr.FeatureClass.ShapeType)
&& & & & &
&& & & & & & &
esriGeometryType.esriGeometryPoint:
&& & & & & & & &
& &return "Point";
&& & & & & & &
esriGeometryType.esriGeometryPolyline:
&& & & & & & & &
& &return "Polyline";
&& & & & & & &
esriGeometryType.esriGeometryPolygon:
&& & & & & & & &
& &return "Polygon";
&& & & & & & &
&default:
&& & & & & & & &
& &return "";
&& & & & &
&& & & &}
&& & & &public void
CreateAttributeTable(ILayer player)
&& & & &{
&& & & & & &string
&& & & & & &tableName =
getValidFeatureClassName(player.Name);
&& & & & & &attributeTable
= CreateDataTable(player, tableName);
&& & & & &
&this.dataGridView1.DataSource = attributeT
&& & & & & &this.Text =
"属性表[" + tableName + "]" + "记录数:" +
attributeTable.Rows.Count.ToString();
&& & & &}
&& & & &public static string
getValidFeatureClassName(string FCname)
&& & & &{
&& & & & & &int dot =
FCname.IndexOf(".");
&& & & & & &if (dot !=
&& & & & &
&& & & & & & &
&return FCname.Replace(".", "_");
&& & & & &
&& & & & & &return
&& & & &}
&& &}
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。ArcGIS问题:属性表的编辑与修改_中华文本库
第1页/共1页
属性表的编辑
1. 属性表的编辑于修改
属性表的ID的添加和删除须在stop editing 状态下,在修改或添加具体属性时要在start editing 状态下,修改添加完成后save edits,(更多知识讨论:http://gisman.)
2.属性表数据的恢复、删除、复制或粘贴
失误删除要素后,打开备份的原数据,选择删除的数据表,在ArcMap中会显示选中数据项,复制(Ctrl+C)后Editor 中Start Editing ,选择要复制到的图层,粘贴(Ctrl+V)即可恢复 在Start Editing状态下,在属性表中选择数据项(选中项会呈现蓝色,按住Ctrl可以多项选择),ArcMap中图形会呈现高亮,亦可在ArcMap中直接选择,然后Delete
在属性表中选择数据项(选中项会呈现蓝色,按住Ctrl可以多项选择),ArcMap中图形会呈现高亮,亦可在ArcMap中直接选择,然后将数据复制到目的图层(目的图层要处于Start Editing状态)
3.属性表属性的添加与删除(更多知识讨论:http://gisman.)
属性的添加与删除要在Stop Editing状态进行,注意属性删除后不能恢复,或者在ArcCatalog中右键单击选择properties中Field中选中要删除项delete或者添加并选择其类型
第1页/共1页
寻找更多 ""小木虫 --- 600万学术达人喜爱的学术科研平台
&&查看话题
如何在gis中将不能打开属性表的里面属性提取出来?
我现在有一个数字高程模型,从中提取了一些地形因子,可是它们的属性表打不开,我想用各个地形因子的属性,可怎么办?求明白的大神指导。
嗯,好,我试一下,谢谢您!我还想问您一个问题,在gis中怎么将经纬度坐标转成平面坐标啊?我是初学者,感觉隔行像隔山啊!您有用过SOLIM Solutions 2.0软件没?
工具箱里有投影转换工具project
您知道在gis中如何提取地形湿度指数吗?
倒是做出来一个,可不知道对不对,就是从百度里搜的方法。
关于如何在gis中将不能打开属性表的里面属性提取出来?的相关话题在小木虫APP已经有12位虫友给出了详细回复。
赶快查看回复吧!
学术必备与600万学术达人在线互动!
扫描下载送金币
北京学而思教育科技有限公司 地址:北京市海淀区北三环甲18号中鼎大厦A座1层102室 电话:010-
浏览器进程
打开微信扫一扫
随时随地聊科研}

我要回帖

更多关于 电信套餐 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信