小编And*_*man的帖子

是什么决定了Path.GetTempPath()的返回值?

目前,我Path.GetTempPath()用来确定在哪里写我的日志文件,但最近我遇到了一个用户的机器,其中返回的路径不是我所期望的.

通常,返回的路径是C:\ Documents and Settings\[userid]\Local Settings\Temp 但在这种情况下,它是C:\ Temp

这通常不是问题,但由于某种原因,有问题的用户无权写入C:\ Temp

我仔细检查了环境变量,并且USER环境变量按预期指向C:\ Documents and Settings\[userid]\Local Settings\Temp,而SYSTEM环境变量指向C:\ WINNT\Temp.

所以...从哪里Path.GetTempPath()获得它的价值?组策略?注册?

我用谷歌搜索,但无济于事.

.net c# environment-variables special-folders

67
推荐指数
2
解决办法
3万
查看次数

数以百计的自定义UserControls创建了数千个USER对象

我正在创建一个仪表板应用程序,显示数百个"项目" FlowLayoutPanel.

每个"项目"是UserControl由12个文本框或标签组成的.

我的应用程序查询数据库,然后为每个记录创建一个"项目"实例,在将数据添加到数据库之前用数据填充标签和文本框FlowLayoutPanel.

在向面板添加约560个项目之后,我注意到USER Objects我的任务管理器中的计数已经上升到大约7300,这比我机器上的任何其他应用程序大得多.

我认为560*13(12个标签加上UserControl本身)是7280.所以突然放弃了所有物品来自哪里......

知道在Windows抛出之前有10,000个USER对象限制,我正试图找到更好的方法将这些"项目"绘制到FlowLayoutPanel.

到目前为止,我的想法如下:

  1. 用户绘制"项目",使用graphics.DrawTextDrawImage代替许多标签.我希望这意味着1项= 1 USER Object,而不是13.

  2. 有1个"item"实例,然后为每个记录填充实例并使用该Control.DrawToBitmap()方法获取图像,然后在FlowLayoutPanel(或类似)中使用它

所以...有没有人有任何其他建议???

PS这是一个可缩放的界面,所以我已经排除了"分页",因为需要一次查看所有项目

.net c# user-controls resource-leak winforms

5
推荐指数
1
解决办法
2450
查看次数