在WinForms 2.0 C#应用程序中,用于在应用程序中保存和恢复表单位置和大小的典型方法是什么?
相关,是否可以在RUNTIME添加新的用户范围应用程序设置?我完全看到如何在设计时添加设置,这不是问题.但是如果我想在运行时创建一个呢?
更多细节:
我的应用程序是现有Visual FoxPro应用程序的转换.我一直在尝试尽可能多地阅读有关应用程序设置,用户设置等的内容,并清楚地了解.Net的做事方式,但仍然有一些我很困惑的事情.
在Fox应用程序中,保存的设置存储在注册表中.我的表单是子类,我有基类代码,自动保存表单位置和大小在表单名称的注册表中.每当我创建一个新表单时,我都不需要做任何特殊的事情来获得这种行为; 它内置于基类中.我的.Net表单也是子类,该部分运行良好.
在.Net中,我得到的印象是我应该使用用户范围设置来处理用户首选项等内容.表单的大小和位置绝对看起来像用户首选项.但是,我看不到任何方法可以自动将这些设置添加到项目中.换句话说,每次我向项目添加一个新表单(并且它们是100个表单)时,我必须记住添加一个用户范围的应用程序设置,并确保给它与表单相同的名称,即" FormMySpecialSizePosition"保持大小和位置.我宁愿不记得那样做.这只是运气吗?或者我是否通过尝试使用用户范围设置完全咆哮错误的树?我是否需要创建自己的XML文件来保存设置,以便我可以做任何我想做的事情(即在运行时添加新设置)?或者是其他东西?
当然这是非常普遍的,有人可以说"正确"的方式来做到这一点.提前致谢!
我刚刚开始学习单元测试(以及一般的TDD).我的问题是,最新版本的NUnit是否支持在VS2008中使用.NET 3.5?我查看了NUnit的文档页面,他们没有提到它.
如果有人在3.5中使用它,是否有任何限制或功能不起作用/需要解决方法?
当重构一些时,#defines我遇到了类似于C++头文件中的以下声明:
static const unsigned int VAL = 42;
const unsigned int ANOTHER_VAL = 37;
Run Code Online (Sandbox Code Playgroud)
问题是,静态会产生什么不同,如果有的话?请注意,由于经典#ifndef HEADER #define HEADER #endif技巧(如果重要),不可能多次包含标题.
VAL如果标题包含在多个源文件中,静态是否只创建了一个副本?
多年来我一直是基于Unix的Web程序员(Perl和PHP).就语言本身而言,我也能胜任C和C++(以及bash和那种类型的系统管理员).我从来没有遇到过学习一门新语言的问题(几年前我用Java编写了一段时间,虽然我可以写它但我不喜欢它作为一种语言).
我没有任何经验的是用于编写图形Windows应用程序的大量框架.
我想了解一些基于Windows的应用程序的想法.我能做到这一点是Perl/TCL/TK,但出于各种原因我想要一些更"原生"的东西.
通过我现在的公司,我可以访问Microsoft工具(以及用于"开发"的许可证),所以我决定自学一些新东西.
所以,我已经安装了Visual Studio 2008.我把它解雇了,然后穿上了"新项目",然后对我可以开始的各种类型的新项目感到非常困惑.
有人可以帮助我理解不仅是有趣的差异,还有任何关于每种类型适合自己的东西的建议吗?
假设我正在走C++路线(我知道语言因此不选择C# - 除非这实际上更合适......)我可以使用:
我也知道远离微软我可以使用wxWidgets.wxWidgets确实吸引我(跨平台等),但这与上面的各种Microsoft选项相比如何?我也知道Qt存在.
我正在开发一个应用程序,并具有格式的URL www.example.com/some_url/some_parameter/some_keyword.我在设计上知道这些URL有一个最大长度(并且仍然有效).我应该为每个请求验证URL长度,以防止缓冲区溢出/注入攻击吗?我相信这是显而易见的,但我不是安全专家,所以也许我错过了一些东西.
我正在使用Scintilla编写一个编辑器.
我已经使用词法分析器进行自动语法高亮显示,但现在我想标记搜索结果.如果我只想标记一个命中,我可以在那里设置选择,但是,我想标记(例如黄色背景)所有命中.
我在Perl中写这个,但如果你有其他语言的建议,那也很酷.
Mono for Linux和OS X上的C#开发有多稳固?我一直在考虑学习C#,并且想知道使用Mono学习是否足够.
我今天回来了一个用于通过SSL登录Gmail的旧脚本.我上次运行它(几个月前)脚本工作正常,但现在它立即死亡:
<urlopen error The read operation timed out>
Run Code Online (Sandbox Code Playgroud)
如果我设置超时(无论多长时间),它会立即死亡:
<urlopen error The connect operation timed out>
Run Code Online (Sandbox Code Playgroud)
后者可以重现:
import socket
socket.setdefaulttimeout(30000)
sock = socket.socket()
sock.connect(('www.google.com', 443))
ssl = socket.ssl(sock)
Run Code Online (Sandbox Code Playgroud)
返回:
socket.sslerror: The connect operation timed out
Run Code Online (Sandbox Code Playgroud)
但我似乎无法重现前者,并且在通过代码进行大量踩踏之后,我不知道是什么导致了这一点.
我正在编写一个Composite控件,它包含一个listview来显示一个项目表.通常在Asp.NET中使用ListView时,我会在代码转发中定义模板.
<asp:ListView runat="server" ID="ArticleList">
<LayoutTemplate>
<div class="ContentContainer">
<div runat="server" id="itemPlaceholder" />
</div>
</LayoutTemplate>
<ItemTemplate>
<div>
<div><%# Eval("Content") %></div>
</div>
</ItemTemplate>
</asp:ListView>
Run Code Online (Sandbox Code Playgroud)
我假设它是这样的:
ListView view = new ListView();
view.LayoutTemplate = .....
view.ItemTemplate = .....
// when do I call these?
view.DataSource = myDataSource;
view.DataBind();
Run Code Online (Sandbox Code Playgroud)
更新: 我通过实现ITemplate接口创建了2个模板:
private class LayoutTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
var outer = new HtmlGenericControl("div");
var inner = new HtmlGenericControl("div") { ID = "itemPlaceholder" };
table.Rows.Add(row);
container.Controls.Add(table);
}
}
private class ItemTemplate : ITemplate …Run Code Online (Sandbox Code Playgroud) 我正在寻找与SQL Server的COALESCE功能等效的Access 2007.
在SQL Server中,您可以执行以下操作:
人
John
Steve
Richard
Run Code Online (Sandbox Code Playgroud)
SQL
DECLARE @PersonList nvarchar(1024)
SELECT @PersonList = COALESCE(@PersonList + ',','') + Person
FROM PersonTable
PRINT @PersonList
Run Code Online (Sandbox Code Playgroud)
产生:约翰,史蒂夫,理查德
我想在Access 2007中做同样的事情.
有谁知道如何在Access 2007中组合这样的行?
.net ×3
c# ×2
python ×2
.net-3.5 ×1
access-vba ×1
api ×1
asp.net ×1
c ×1
c++ ×1
coalesce ×1
controls ×1
gmail ×1
http ×1
ide ×1
mono ×1
ms-access ×1
nunit ×1
perl ×1
rest ×1
scintilla ×1
security ×1
settings ×1
sockets ×1
ssl ×1
static ×1
url ×1
web-services ×1
webforms ×1
windows ×1
winforms ×1