在VS .NET中,当您为项目选择文件夹时,会显示一个看起来像OpenFileDialog或SaveFileDialog的对话框,但设置为仅接受文件夹.自从我看到这个以来,我就想知道它是如何完成的.我知道FolderBrowserDialog,但我从来没有真正喜欢那个对话框.它开始太小,不让我利用能够键入路径.
我几乎可以肯定,现在没有办法从.NET做到这一点,但我也很好奇你是如何从非托管代码中做到这一点的.如果没有从头开始完全重新实现对话框,那么如何修改对话框以获得此行为?
我还要重申,我知道FolderBrowserDialog,但有时我不喜欢使用它,除了真正好奇如何以这种方式配置对话框.告诉我只使用FolderBrowserDialog可以帮助我保持一致的UI体验,但不能满足我的好奇心,所以它不会算作答案.
它也不是特定于Vista的东西; 自从VS .NET 2003以来我一直在看这个对话框,所以在Win2k和WinXP中它是可行的.这不是一个"我想知道正确的方法来做这个"的问题,更多的是"我一直很好奇这个,因为我第一次想在VS 2003中这样做"的问题.我知道Vista的文件对话框有一个选项可以做到这一点,但它一直在XP中工作,所以我知道他们做了一些事情让它工作.特定于Vista的答案不是答案,因为问题上下文中不存在Vista.
更新:我接受了Scott Wisniewski的答案,因为它附带了一个工作样本,但我认为Serge指出对话框定制(这无疑是.NET令人讨厌但它确实有效)和Mark Ransom弄清楚MS 是值得称赞的.可能为此任务滚动了一个自定义对话框.
我对这个新版本的SQL Server Express非常感兴趣.
(对我而言)不清楚安装程序应该如何部署使用LocalDB的应用程序.
是否需要在客户端PC上安装SQL Server Express然后附加MDF文件?
或者它只需要运行它LocalDB.msi,它作为一个独立的文件,如SQL Server Compact?
sql-server installation sql-server-express sql-server-2012 localdb
我已经创建了一段代码,它接受一个IP地址(来自另一个类中的main方法),然后循环遍历一系列IP地址,并在每个IP地址上执行.我有一个GUI前端,它正在崩溃(因此我为什么要完成多线程.我的问题是我不能再将IP地址作为我的ping代码中的参数作为其可调用的.我已经搜遍了所有为此,似乎无法找到解决这个问题的方法.有一种方法可以让一个可调用的方法来获取参数吗?如果没有,有没有其他方法可以实现我想要做的事情?
我的代码示例:
public class doPing implements Callable<String>{
public String call() throws Exception{
String pingOutput = null;
//gets IP address and places into new IP object
InetAddress IPAddress = InetAddress.getByName(IPtoPing);
//finds if IP is reachable or not. a timeout timer of 3000 milliseconds is set.
//Results can vary depending on permissions so cmd method of doing this has also been added as backup
boolean reachable = IPAddress.isReachable(1400);
if (reachable){
pingOutput = IPtoPing + " is reachable.\n";
}else{
//runs ping command once …Run Code Online (Sandbox Code Playgroud) 我有兴趣安装.NET 4.5.
但我听说这是一个就地升级.
由于我公司的用户使用Windows XP.我无法发布任何使用.NET 4.5的客户端应用程序.
我知道我可以在编码时定位.net 4.0,但是,如果我安装了.net 4.5,那么在我的机器上工作的风险是否会在Windows XP机器上运行(只有.net 4.0)?
(顺便说一句,我看了一下,但没有看到这个问题.如果有问题,请指出我,我会尝试删除这个.)
我需要设置soap标头信息作为Web方法的身份验证的一部分.我正在使用ksoap2 API来调用.NET Web服务.这是带有请求的soap标头.
<soap:Header>
<DTHeader xmlns="http://myServer.com/webservices/">
<Username> string </Username>
<Password> string </Password>
</DTHeader>
</soap:Header>
<soap:Body>
<MyTestMethod xmlns="http://myServer.com/webservices/">
<ID> string </ID>
<TransID> guid </TransID>
</MyTestMethod>
</soap:Body>
Run Code Online (Sandbox Code Playgroud)
你能否提供android代码来设置soap标题"DTHeader"并设置"Username"和"Password".
我的AssemblyInfo包含有关我的产品,公司等的信息.此数据目前在cs文件中进行了硬编码:
[assembly: AssemblyCompany("My Company.")]
[assembly: AssemblyProduct("MyProduct")]
[assembly: AssemblyCopyright("Copyright © 2012 My Company, Inc. All Rights Reserved.")]
[assembly: AssemblyTrademark("MyProduct is a trademark of MyCompany Software.")]
[assembly: AssemblyCulture("")]
Run Code Online (Sandbox Code Playgroud)
我想本地化这些文本,但我无法执行以下操作:
[assembly: AssemblyCompany(Resources.MyConpany)]
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法 ?
我正在尝试安装DeveloperForce.Web.Login
我最近更新了我的nuget到版本2.8.50313.31
PM> Install-Package DeveloperForce.Web.Login
Install-Package : The current environment doesn't have a solution open.
At line:1 char:16
+ Install-Package <<<< DeveloperForce.Web.Login
+ CategoryInfo : InvalidOperation: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetNoActiveSolution,NuGet.PowerShell.Commands.InstallPackageCommand
Run Code Online (Sandbox Code Playgroud) PHP有一个名为print_r()和var_dump()的函数,它将显示项目的所有内容.它可以很容易地弄清楚它是什么.
C#中有类似的东西吗?
我知道Console.WriteLine("Hello");C#中有一个,但这在MVC中有效吗?我可以做一些类型的debug.trace()像Flash并进入调试控制台,而我运行应用程序?
我有一个iPad应用程序,它使用UISplitViewController(左侧是UITableView,右侧是详细视图).点击它时,我的表格视图会以蓝色突出显示所选单元格.
当我调用以下方法时,单元格被选中但不以蓝色突出显示:
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop];
Run Code Online (Sandbox Code Playgroud)
我花了很多时间来处理各种委托方法和黑客试图让单元格以编程方式突出显示,就好像它已被挖掘一样.我不能这样做.
我已经设法几乎到达那里:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (shouldHighlightCell)
{
NSIndexPath *indexPathForCellToHighlight = [NSIndexPath indexPathForRow:0 inSection:0];
if ([indexPath isEqual:indexPathForCellToHighlight])
{
cell.selected = YES;
shouldHighlightCell = NO;
}
}
}
Run Code Online (Sandbox Code Playgroud)
只要我也有这个功能,它就可以正常工作(否则即使在点击另一个单元时它仍保持选中状态):
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *ip = [NSIndexPath indexPathForRow:0 inSection:0];
if ([[self.tableView cellForRowAtIndexPath:ip] isSelected])
{
[[self.tableView cellForRowAtIndexPath:ip] setSelected:NO];
}
NSIndexPath *iToTheP = indexPath;
return iToTheP;
}
Run Code Online (Sandbox Code Playgroud)
我知道这是一个奇怪而复杂的解决方法.我不介意,但它甚至没有完全发挥作用.如果选定的单元格在屏幕上滚动,则会丢失其突出显示,而在屏幕上滚动时,已点击的单元格仍会突出显示.
我对这一点感到非常困惑.我确信这种解决方法甚至不是必需的,有一个更简单的解决方案.
我尝试在C#.net中使用DataAdapter.我仍然不了解DataAdapter.
我阅读了很多关于DataAdapter和DataReader的文章和博客.
我了解DataAdapter会在需要时自动打开和关闭数据库.
但,
//conn.Open();
AdsDataAdapter da;
da = new AdsDataAdapter("Select * from Test", conn);
AdsCommandBuilder cb;
cb = new AdsCommandBuilder(da);
DataSet ds = new DataSet();
da.Fill(ds, "Test");
DataRow newrow = ds.Tables["Test"].NewRow();
newrow["Name"] = "How about";
ds.Tables["Test"].Rows.Add(newrow);
da.Update(ds, "Test");
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我收到一条错误消息,提示"连接必须打开".
为什么适配器无法自动打开连接?
并且,我想使用insertCommand插入数据(对于此测试,我打开了连接).
da.InsertCommand = new AdsCommand("INSERT INTO test (NAME) values('Insert Test #1')", conn);
//da.InsertCommand.ExecuteNonQuery(); // it works
da.Update(ds,"Test"); //but it does not works.
Run Code Online (Sandbox Code Playgroud)
很多例子使用Adapter.Update(),但对我来说,它不起作用:(
没有错误,也没有插入.
并使用da.InsertCommand.ExecuteNonQuery(); 而不是Update(),它的工作原理.
我究竟做错了什么?
谢谢!