使用VS2008,C#,.Net 2和Winforms如何使常规按钮看起来"按下"?想象一下这个按钮是一个开/关开关.
ToolStripButton
具有Checked属性,但常规Button不具有.
我计划将所有配置设置存储在我的应用程序的app.config部分(使用ConfigurationManager.AppSettings
该类).当用户使用应用程序的UI更改设置(单击复选框,选择单选按钮等)时,我计划将这些更改写入AppSettings
.同时,在程序运行的同时,我计划AppSettings
从一个不断处理数据的过程中不断访问.通过UI对设置的更改需要实时影响数据处理,这就是进程将AppSettings
不断访问的原因.
这是一个关于性能的好主意吗?AppSettings
在编写.Net应用程序时,使用应该是存储和访问配置设置的"正确方法",但我担心此方法不适用于恒定负载(至少在设置不断读取方面).
如果有人有这方面的经验,我将非常感谢输入.
更新:我应该澄清几点.
这不是一个Web应用程序,因此将数据库连接到应用程序可能仅仅是为了存储配置设置而过度杀伤.这是一个Windows窗体应用程序.
根据MSDN文档,ConfigurationManager
不仅用于存储应用程序级别设置,还用于存储用户设置.(例如,如果将应用程序安装为部分信任应用程序,则尤为重要.)
更新2:我接受了lomaxx的答案,因为Properties
它确实看起来像一个很好的解决方案,而无需向我的应用程序添加任何其他层(例如数据库).使用"属性"时,它已经完成了其他人建议的所有缓存.这意味着任何更改和后续读取都在内存中完成,使其非常快.属性仅在您明确告知磁盘时将更改写入磁盘.这意味着我可以在运行时动态更改配置设置,然后在程序退出时只进行最终保存到磁盘.
只是为了验证它实际上能够处理我需要的负载,我在笔记本电脑上做了一些测试,并且能够使用Properties执行750,000次读取和每秒7,500次写入.这是迄今为止,超出我的是什么应用程序将永远甚至接近需要,我觉得在使用性能,而不会影响性能相当安全的.
我曾经在许多不同的嵌入式系统上工作过.他们都使用typedef
s(或#defines
)作为类型UINT32
.
这是一个很好的技术,因为它将类型的大小驱动到程序员家,让你更加意识到溢出的可能性等.
但是在某些系统上,您知道编译器和处理器在项目生命周期内不会发生变化.
那么应该影响您创建和实施项目特定类型的决策呢?
编辑我想我设法失去了我的问题的要点,也许它真的是两个.
使用嵌入式编程,您可能需要特定大小的接口类型,以及处理受限资源(如RAM).这是无法避免的,但您可以选择使用编译器中的基本类型.
对于其他一切,类型的重要性较低.
您需要注意不要引起溢出,并且可能需要注意寄存器和堆栈的使用.这可能会引导你UINT16
,UCHAR
.但是使用类型UCHAR
可以添加编译器'fluff'.由于寄存器通常较大,因此某些编译器可能会添加代码以强制将结果输入类型.
__PRE__可以变成
__PRE__这是不必要的.
所以我认为我的问题应该是: -
鉴于嵌入式软件的限制,为一个项目设置的最佳策略是什么,这个项目将有很多人参与其中 - 并非所有人都具有相同的经验水平.
从SQL Server存储过程执行FTP命令的最佳方法是什么?我们目前使用这样的东西:
EXEC master..xp_cmdshell 'ftp -n -s:d:\ftp\ftpscript.xmt 172.1.1.1'
Run Code Online (Sandbox Code Playgroud)
问题是即使FTP以错误结束,命令似乎也会成功.此外,使用xp_cmdshell
需要特殊权限,可能会留下安全问题的空间.
我正在尝试使用本指南测试驱动器反应本机代码.reactjs覆盖react native,以使用jestjs进行浅层渲染和测试.
即使我能够测试浅层渲染组件(检查其存在和子项),我也无法测试触摸事件.
handleTouch() {
this.setState({ showDescription: !this.state.showDescription });
}
render() {
const description = this.state.showDescription ? (<Text style={styles.description}>{this.props.entry.description}</Text>) : null;
return (
<TouchableNativeFeedback onPress={() => this.handleTouch()}>
<View style={styles.rowContainer}>
<View style={styles.row}>
</View>
{description}
</View>
</TouchableNativeFeedback>
)
}
Run Code Online (Sandbox Code Playgroud)
我试图测试是否触摸TouchableNativeFeedback
,description
标记被渲染.reactjs TestUtils提供Simulate
但它不起作用.
这是我的规格设置:
beforeEach(function() {
profileView = TestUtils.renderIntoDocument(<ProfileEntryView entry={entry}/>);
var touchableNativeFeedback = TestUtils.findRenderedComponentWithType(profileView, TouchableNativeFeedback);
TestUtils.Simulate.onTouchEnd(touchableNativeFeedback);
});
Run Code Online (Sandbox Code Playgroud)
如何使用reactjs TestUtils
为react-native 测试UI交互?
这是我的代码,它启动网络摄像头:
import pygame.camera
import pygame.image
import sys
pygame.camera.init()
cameras = pygame.camera.list_cameras()
print "Using camera %s ..." % cameras[0]
webcam = pygame.camera.Camera(cameras[0])
webcam.start()
# grab first frame
img = webcam.get_image()
WIDTH = img.get_width()
HEIGHT = img.get_height()
screen = pygame.display.set_mode( ( WIDTH, HEIGHT ) )
pygame.display.set_caption("pyGame Camera View")
while True :
for e in pygame.event.get() :
if e.type == pygame.QUIT :
sys.exit()
# draw frame
screen.blit(img, (0,0))
pygame.display.flip()
# grab next frame
img = webcam.get_image()
Run Code Online (Sandbox Code Playgroud)
我想知道如何捕获图像并将其存储到当前目录.请提出所需的更改建议.
我有一个JSPM/Typescript/Angular 1.5.3
项目.我想使用新的组件路由器.在我的项目目录中,我使用了该命令
jspm install npm:@angular/router
Run Code Online (Sandbox Code Playgroud)
哪个安装正常,没有错误.然后我把它添加到我的app.ts
文件中
import ngComponentRouter from 'jspm_packages/npm/@angular/router@0.2.0/angular1/angular_1_router'
Run Code Online (Sandbox Code Playgroud)
但是当我开始我的时候lite-server
,我明白了
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:3000/jspm_packages/npm/@angular/instruction.json
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:3000/jspm_packages/npm/@angular/utils.json
Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost:3000/jspm_packages/npm/@angular/url_parser.json
Run Code Online (Sandbox Code Playgroud)
我不确定为什么要加载这些神秘的JSON文件,所以我检查了我的package.json:
{
"jspm": {
"name": "app",
"dependencies": {
"": "npm:@angular/router@^0.2.0",
"angular": "npm:angular@^1.5.3",
Run Code Online (Sandbox Code Playgroud)
嗯......空的""
看起来不对劲.如果JSPM无法解析包名并且路由器要求JSON文件,我觉得缺少构建步骤.我在这做错了什么?
我们正在努力将Angular Material Datepicker集成到我们的应用程序中.
但是我们希望能够在当时只显示一周.本周特定.用户应该仍然可以通过向下滑动日历来显示该月的其余日期.
以下是用于说明我们的目标的图像.
周
月
什么是实现这一目标的好方法?
请帮助我理解范围运算符...
和..
Ruby中使用的"触发器" 之间的区别.
这是来自Pragmatic Programmers指南的示例:
a = (11..20).collect {|i| (i%4 == 0)..(i%3 == 0) ? i : nil}
Run Code Online (Sandbox Code Playgroud)
返回:
[nil, 12, nil, nil, nil, 16, 17, 18, nil, 20]
Run Code Online (Sandbox Code Playgroud)
也:
a = (11..20).collect {|i| (i%4 == 0)...(i%3 == 0) ? i : nil}
Run Code Online (Sandbox Code Playgroud)
回:
[nil, 12, 13, 14, 15, 16, 17, 18, nil, 20]
Run Code Online (Sandbox Code Playgroud) 我已经使用Gulp-Angular yomen生成器来使用TypeScript构建应用程序.我想在visual studio中调试typescript,但也希望保持gulp-Angular的gulp任务不变.
我在visual studio中禁用了"Build On Save"功能,因此它不再构建.ts文件.此处还有其他建议可让visual studio远离类型脚本文件.
之后我通过执行'gulp serve'任务启动了应用程序,然后将visual studio附加到iexplorer.exe - 脚本进程.但是视觉工作室中的打字稿断点并未受到打击.
我还检查了最终缩小的JS文件,它将源映射作为base64编码的字符串内联,而不是作为单独的.map文件的路径.
请建议一种在Visual Studio中使打字稿调试工作的方法.
.net ×2
angular ×2
c# ×2
typescript ×2
angularjs ×1
button ×1
c ×1
datepicker ×1
ecmascript-6 ×1
embedded ×1
flip-flop ×1
ftp ×1
gulp ×1
jestjs ×1
jspm ×1
npm ×1
performance ×1
properties ×1
pygame ×1
python ×1
react-native ×1
ruby ×1
sql-server ×1
systemjs ×1
tdd ×1
winforms ×1