Tag: visual c# express 2010

在C#中获取程序图标?

我有这个代码可以获取名称,但我如何获得每个程序的图标? string SoftwareKey = “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products”; RegistryKey rk = default(RegistryKey); rk = Registry.LocalMachine.OpenSubKey(SoftwareKey); string sname = string.Empty; foreach (string skname in rk.GetSubKeyNames()) { try { sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey(“InstallProperties”).GetValue(“DisplayName”).ToString(); string Inst1 = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey(“InstallProperties”).GetValue(“InstallLocation”).ToString(); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[2].Value = sname; dataGridView1.Rows[n].Cells[3].Value = Inst1; } catch (Exception ex) { //MessageBox.Show(ex.Message); } }

在C#中仅列出子文件夹?

我有一些代码: string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); string pathDownload = Path.Combine(pathUser, @”documents\iracing\setups\”); DirectoryInfo dinfo = new DirectoryInfo(pathDownload); // Populates field with all Sub Folders FileInfo[] Files = dinfo.GetFiles(“*.sto”); foreach (FileInfo file in Files) { listBox2.Items.Add(file.Name); } 我想要显示: documents\iracing\setups\的子文件夹,而不是文件……包括.sto文件。 我只需要列出子文件夹….我不知道该怎么做? 谢谢!

在Visual C#Express中使用多个解决方案的良好实践

背景 :我的团队由3个相当​​缺乏经验的开发人员组成。 我们正在为我们公司开发内部软件。 目前,我们有许多较小且独立的解决方案。 其中许多是相互依存的。 目前,这些依赖关系是通过引用相应版本文件夹中的输出dll来实现的。 通过手动重建依赖解决方案来推动更新。 示例:解决方案A使用解决方案B的function。连接使解决方案A引用… \ Release \ B.dll。 通过构建解决方案B,然后构建解决方案A等来对B的更改进行传播。 这之前一切正常,但现在我们正在从手动(精神麻木)“版本控制系统”(folder1,folder2,folder2New …)转向使用正确的(git)。 似乎不建议对.dll进行版本控制。 这意味着每当有人想要构建新版本的A时,他还需要构建B(以及可能的其他5个解决方案)以获得最新版本的B. 我认为必须有更好的方法来做到这一点。 我一直在考虑将相关的解决方案组合到一个主解决方案中,但我无法弄清楚如何在Visual C#Express(我们正在使用)中执行此操作。 所以最后问题是: 有一个主要的解决方案,构建一切的方式去? – 从MSDN看起来似乎如此,但我无法弄清楚如何在Visual C#Express 2008中做到这一点,这引起了我的注意 这在Visual C#Express中是否可行? 如果没有,管理问题的好方法是什么? 编辑感谢所有人提供下面的好建议。 这是我最终做的总结。 简而言之,问题的答案是:“是”和“排序,但大部分都是”。 我实现如下:为了了解依赖关系,我按照下面的建议做了,并绘制了二进制产品的映射,箭头指向dll或exe的名称到它的所有依赖项。 对于每个项目 ,我都打开了相应的解决方案 (因为最初有一个解决方案项目)。 然后,我在图中显示的树结构中添加了每个依赖项的项目文件(通过右键单击解决方案资源管理器中的解决方案),以便还包括依赖项的依赖项等。 然后我删除了旧的引用(直接指向.dlls)并添加了对项目的引用。 重要的结果是: 当构建项目的解决方案时,所有它的依赖项都是用它构建的,因此在部署时,您知道所有构建产品都是自动的最新版本。

如何在C#Express中选择32位或64位构建?

当我尝试在C#Express 2008中构建我的解决方案时,我遇到了问题。我需要为32位架构构建它,但它始终构建为64位。 在Visual Studio 2008中,我可以选择体系结构,但在C#Express中找不到此选项。 有没有办法在C#Express中执行此操作?

如何在我的可视化C#web服务中为我的Android应用程序调用LINQ中的用户定义函数?

我目前正在开发一个应用程序,它将根据距离检索其他用户的位置。 我有一个数据库,以纬度和经度存储所有用户位置信息。 由于这两对纬度和经度之间的距离计算非常复杂,我需要一个函数来处理它。 from a in db.Location.Where(a => (calDistance(lat, longi, Double.Parse(a.latitude), Double.Parse(a.longitude)))<Math.Abs(distance) )) {…} 但是,我收到以下错误:LINQ to Entities无法识别该方法,并且此方法无法转换为商店表达式。 我不知道如何将它翻译成商店表达式,而且,计算也需要数学库。 是否有任何方法可以让LINQ表达式调用我自己的函数? 也许有其他方法可以实现我的目标,任何人都可以帮忙吗?

调试/构建时引用消失(C#,VB.NET,VS2010)

我使用MagicLibrary作为一些组件。 我知道它是用Visual Studio 2003编写的,并在Visual C#Express 2010中重新编译。它编译得很好,我可以看到文件夹中的库。 然后,我在Visual C#Express 2010中创建了一个新项目,并将组件MagicalLocalLibrary.dll添加到工具箱中。 他们看起来很好,没有错误。 我将工具箱中的控件放到我的表单中,看起来很好。 我然后调试(看看是否会发生任何错误),我看到引用MagicalLibrary消失了,我得到了错误: The type or namespace name ‘Crownwood’ could not be found (are you missing a using directive or an assembly reference?) 问题是,参考文献在解决方案资源管理器中的引用下显示正常,但是我无法使用它在代码中导入它(或者在InstelliSense中也没有列出)但是如果我进入对象浏览器并选择“我的解决方案“它没有列出。 我可以单击解决方案资源管理器中的参考,只需将复制本地属性更改为True或False,然后它将出现在对象浏览器中,但每当我再次调试我的项目时它就会消失。 知道为什么会这样吗? 提前致谢。

将varchar数据类型转换为日期时间数据类型会导致超出范围的值错误

将varchar数据类型转换为日期时间数据类型会导致超出范围的值错误 我正在尝试使用表单将数据输入到我的表中,表单validation和sql服务器中的日期格式都是dd / mm / yy,但是当我尝试从表单提交数据时,日期高于12 (例如13/12/2012)它抛出一个exception,其原因是“将varchar数据类型转换为日期时间数据类型导致超出范围的值错误”,如果我尝试在表单中输入数据以mm / dd / yy格式表示“错误的日期格式”,这意味着dd / mm / yy格式是正确的格式 这是我的表格的代码如下: private void btnAddProject_Click(object sender, EventArgs e) { DateTime startDate; DateTime endDate; if (txtProjectName.Text == “”) //client side validation { MessageBox.Show(“Enter Project Name”); return; } try { startDate = DateTime.Parse(txtProjectStart.Text); endDate = DateTime.Parse(txtProjectEnd.Text); } catch (Exception) { MessageBox.Show(“Wrong Date Format”); […]

在C#中获取已安装程序的exe名称?

我用它来获取程序名称,但我需要exe名称。 我怎么找到它们? string SoftwareKey = “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Installer\\UserData\\S-1-5-18\\Products”; RegistryKey rk = default(RegistryKey); rk = Registry.LocalMachine.OpenSubKey(SoftwareKey); //string skname = null; string sname = string.Empty; foreach (string skname in rk.GetSubKeyNames()) { try { sname = Registry.LocalMachine.OpenSubKey(SoftwareKey).OpenSubKey(skname).OpenSubKey(“InstallProperties”).GetValue(“DisplayName”).ToString(); listBox1.Items.Add(sname); } catch (Exception ex) { MessageBox.Show(ex.Message); } } 我想这样做: System.Diagnostics.Process.Start(“Name.exe”); 运行程序。

在Combobox中对齐文本

我想在combobox中对齐我的文本,以便它将显示在combobox的中心告诉我如何执行此操作也可以看到combobox周围有一个默认边框,当它处于焦点时我怎样才能删除该边框请解决我的两个问题谢谢

正确处理和删除对UserControls的引用,以避免内存泄漏

我正在使用Visual c#express 2010在c#中开发一个Windows窗体应用程序(.NET 4.0)。我无法释放分配给UserControls的内存我不再使用了。 问题: 我有一个FlowLayoutPanel,显示自定义UserControls。 FlowLayoutPanel显示搜索结果等,因此必须重复更新显示的UserControl集合。 在创建和显示每个新的UserControl集之前,在我的FlowLayoutPanel的ControlCollection(Controls属性)中当前包含的所有控件上调用Dispose(),然后在同一ControlCollection上调用Clear()。 这似乎不足以处理UserControls使用的资源,因为每个新的UserControls集都被创建并添加到我的ControlCollection中, 我的UserControls似乎也没有被垃圾收集声明。 应用程序的内存使用量在很短的时间内急剧攀升,然后达到稳定状态,直到我显示另一个列表。 我还用.NET Memory Profiler分析了我的应用程序,它报告了许多可能的内存泄漏(见下节)。 我认为出了什么问题: 我错了。 问题是使用foreach构造迭代ControlCollection并在其控件上调用Dispose()导致的错误,Hans Passant在他的回答中描述了这个错误。 问题似乎是由我的UserControls中使用的ToolTip引起的。 当我删除这些时,我的UserControls似乎被垃圾收集声明。 .NET内存分析器证实了这一点。 我早期测试中的问题1和6(见下节)不再出现​​,并报告了一个新问题: 未释放的实例(释放资源并删除外部引用)7种类型的实例已被垃圾收集而未正确处理。 请查看以下类型以获取更多信息。 ChoiceEditPanel(inheritance),NodeEditPanel(inheritance),Button,FlowLayoutPanel,Label,> Panel,TextBox 即使工具提示的参考已经消失,这不是一个长期解决方案,但当我不再需要时,仍然存在确定性地处理我的UserControls的问题。 但是,删除对工具提示的引用并不重要。 代码和更多细节 我使用一个名为NodesDisplayPanel的UserControl,它充当FlowLayoutPanel的包装器。 这是我的NodesDisplayPanel类中的方法,用于清除FlowLayoutPanel中的所有控件: public void Clear() { foreach (Control control in flowPanel.Controls) { if (control != NodeEditPanel.RootNodePanel) { control.Dispose(); } } flowPanel.Controls.Clear(); // widthGuide is used to […]