有没有简单的方法来禁用/灰显DataGridView?例如在做的时候
dgv.Enabled = false
Run Code Online (Sandbox Code Playgroud)
dgv的外观不会改变.我看到有人追加以下内容:
dgv.forecolor = gray
dgv.columnheader.forecolor = gray
Run Code Online (Sandbox Code Playgroud)
但是,这看起来很笨拙.有没有更好的办法?
以编程方式引用公用文件夹是否安全:
Directory = System.Environment.GetEnvironmentVariable("public")+"MyCompanyName" // etc.
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?
再次,如果有人为公共删除环境变量,并且这对于不同的语言操作系统使用是否安全呢?
非常好奇,但只是想知道是否有人知道使用之间的区别:
System.Windows.Forms.SaveFileDialog(在Assembly System.Windows.Forms.dll中)和Microsoft.Win32.SaveFileDialog(在Assembly PresentationFramework.dll中)?
我在WPF表单中使用PresentationFramework.dll版本,但我目前正在重新使用表单中的一些旧代码,其中包括显示System.Windows.Forms.dll版本并想知道是否:
提前致谢.
我正在经历很多代码和标记类,我现在想要使用Serialization属性来保存它们.我还没有编写二进制序列化/去同步引擎,所以我想在完成之后我会回答我自己的问题! - 但是如果可以的话,我想在这里尝试获得更早的回复.我遇到过一些包含如下属性的代码:
public string Id
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
"Id"是否被序列化?我知道在编译器下面自动创建一个类成员,但这是否正确序列化(因为类实例的所有数据成员都写入存储)?感觉它不会,因为您不能将Serialized/NonSerialized属性放在属性上.
提前致谢.
我在Vista/7上注意到,当OpenFileDialog用于某些应用程序(例如MS Word,Visual Studio)时,它还在位置栏中包含应用程序本身,其中包含受支持类型的文档的收藏夹文件夹列表.例如

有没有一种简单的方法可以为您自己的应用程序执行此操作,或者MS Word等是否使用OpenFileDialog的扩展版本,这意味着我需要扩展OpenFileDialog /自己编写以添加此功能?
目前,如果我尝试将本地用户"jim,bob"添加到Windows 7系统,正如预期的那样,将显示以下错误对话框,显示用户名的所有非法字符.是否有一个快速的.net方法来调用它返回相同的字符?例如
Path.GetInvalidPathChars();
Run Code Online (Sandbox Code Playgroud)
返回所有无效的路径字符.用户名是否有类似的方法?

我需要将我创建的文件扩展名".rulog"与notepad.exe相关联,作为Windows 7计算机的安装项目安装的一部分(因为我们需要管理员权限才能写入注册表).
基本上我需要以编程方式获取notepad.exe的确切路径.现在,我知道它通常存在于C:\ Windows\system32中.这是PATH系统环境变量的一部分,所以我想我可以循环遍历所有PATH变量,并通过使用File.Exists将"notepad.exe"与当前路径组合来测试是否存在"notepad.exe".然而,这感觉非常笨拙.
基本上我需要添加一个条目
Computer\HKEY_CLASSES_ROOT\.rulog\shell\open\command\
Run Code Online (Sandbox Code Playgroud)
与记事本的路径的价值.
顺便说一句,我可以看到.txt:
Computer\HKEY_CLASSES_ROOT\.txt\ShellNew
Run Code Online (Sandbox Code Playgroud)
ItemName的值为
“@%SystemRoot%\system32\notepad.exe,-470”
Run Code Online (Sandbox Code Playgroud)
也许我可以复制这个值?或者这是危险的吗?(例如不存在).
我想知道是否有人可以帮助我解决这个相当令人困惑的情况。我有一个WPF表单myForm,该表单在WinForm应用程序中以模态显示(不使用ElementHost)。如果我使用默认的WindowStyle,并且一切显示在任务栏中,则一切正常。但是,现在我不希望该表单显示在任务栏中或包含最小化按钮,因此我执行了以下操作:
MyForm myForm = new MyForm();
myForm.ShowInTaskbar = false;
myForm.WindowStyle = System.Windows.WindowStyle.ToolWindow;
myForm.WindowStartupLocation =System.Windows.WindowStartupLocation.CenterOwner;
myForm.ShowDialog();
Run Code Online (Sandbox Code Playgroud)
现在,wpf窗体将按预期方式显示,并且没有最小化按钮。如果我现在在任务栏中选择“父” winform应用程序,则wpf表单将消失,并且似乎没有任何返回它的方法!我读这是相似但不相同的(纯WPF应用程序),所以我能理解为什么主要的应用程序不会在ALT + TAB菜单出现,但谁能告诉我怎么能回到WPF形式?
提前致谢。
这是一个关于从字符串数组中高效返回字符串和字符的问题,其中:
这个想法是,当用户键入一个字母时,潜在的响应会与下一个字母一起显示.因此响应时间很重要,因此需要一个高性能算法.
例如,如果字符串数组包含:
string[] stringArray = new string[] { "Moose", "Mouse", "Moorhen", "Leopard", "Aardvark" };
Run Code Online (Sandbox Code Playgroud)
如果用户输入"Mo",那么"Moose","Mouse"和"Moorhen"应该与字符"o"和"u"一起返回以寻找潜在的下一个字母.
这感觉就像LINQ的工作一样,所以我作为静态方法的当前实现是(我将输出存储到一个Suggestions对象,该对象只有2个返回列表的属性):
public static Suggestions
GetSuggestions
(String userInput,
String[] stringArray)
{
// Get all possible strings based on the user input. This will always contain
// values which are the same length or longer than the user input.
IEnumerable<string> possibleStrings = stringArray.Where(x => x.StartsWith(userInput));
IEnumerable<char> nextLetterChars = null;
// If we have possible strings and we have some input, get the next letter(s) …Run Code Online (Sandbox Code Playgroud)