关于OnMouseDown事件中获取的值

bananatao23 2011-05-27 04:09:17
我在OnMouseDown事件中得到一个值,存在一个数组里,但是在这个类中其他函数引用这个值的时候,发现已经清零了,想请教下要怎样才能长期保存在OnMouseDown事件中获取的值?
例如我新建一个类,重载OnMouseDown函数,在这个函数中获取了一个值存储到datatext[0]。我想在这个类的另一个函数predictFuction()中使用datatext[0]里的值,但实际应用中发现在调用predictFuction()时,datatext[0]已经为0了。
public sealed class samplevalue : BaseTool
{

public override void OnMouseDown(int Button, int Shift,int mapX,int mapY)
{
IArray pIDArray;
IFeatureIdentifyObj pFeatIdObj;
IIdentifyObj pIdObj;
IMap pMap;
pMap = MainAxMapControl.ActiveView.FocusMap;

IFeatureLayer pLayer = pMap.get_Layer(0) as IFeatureLayer;
IIdentify pIdentify;
pIdentify = (IIdentify)pLayer;
IEnvelope pEnv;
IActiveView pActiveView = MainAxMapControl.ActiveView;

pEnv = MainAxMapControl.TrackRectangle();


if (pEnv.IsEmpty == true)
{
tagRECT r;
r.bottom = mapY + 8;
r.top = mapY - 8;
r.left = mapX - 8;
r.right = mapX + 8;
pActiveView.ScreenDisplay.DisplayTransformation.TransformRect(pEnv, ref r, 4);
pEnv.SpatialReference = pActiveView.FocusMap.SpatialReference;
}
pIDArray = pIdentify.Identify(pEnv);
for (int i = 0; i < 1; i++)
{
pFeatIdObj = (IFeatureIdentifyObj)pIDArray.get_Element(i);

pIdObj = (IIdentifyObj)pFeatIdObj;
datatext[0] = pIdObj.Name;

MessageBox.Show("噪声源噪声值:" + datatext[0] + "dB" + " X:" + mapX + " y:" + mapY);

}

}
public void predictFuction()
{
datatext[1] = datatext[0] + 5;
MessageBox.Show(datatext[1]);
}
}
...全文
350 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bananatao23 2011-05-29
  • 打赏
  • 举报
回复
继续求教。还是没能解决这个问题
bananatao23 2011-05-27
  • 打赏
  • 举报
回复
有前辈可以指点一下么
bananatao23 2011-05-27
  • 打赏
  • 举报
回复
但是在运行鼠标单击事件的时候,datatext[0]里是有数据的,这个也会被释放么?
bdmh 2011-05-27
  • 打赏
  • 举报
回复
pIdentify 是个局部变量,是不是用完被释放了,name应该是string类型吧

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧