如何在给定时间发现可用的任何USB存储设备和/或CD/DVD刻录机(使用C#.Net2.0).
我想向用户提供可以存储文件以便物理移除的设备选择 - 即不是硬盘驱动器.
我有一个DataGridView,其数据源设置为自定义对象的通用列表.当用户更改值(在这种情况下检查/取消选中复选框)时,对象中的基础布尔字段会发生变化.
我是否应该创建List的"副本"进行绑定,然后在用户提交时手动更新(如果是这样,如何创建此副本),或者是否有一种简单的方法来回滚对数据源所做的更改.
(我正在使用C#)
我们的产品历史悠久(12年左右).
它的起源是VB3(版本1)和后来的VB6(版本2).(版本号是"狗早餐",版本控制是一场噩梦.
我已经在这里参与了几年.我们在.Net平台上开发了第3版,但版本2继续得到定期版本的支持 - 每年约3或4个版本.
我在开始时介绍了夜间自动构建版本,我们的产品版本号是2.2.2.每个人都计划只发布2.2.3,但自动构建过程和VB6的"有趣"3部分编号系统,意味着我们需要使用第三部分 - 构建/修订号 - 这应该是它应该的.
所以我们发布了版本2.3(内置版本为"无论什么")并开始使用2.4(每晚增加内部版本号),然后是2.5,然后是2.6等.
内部版本号远离公共视图,但可用于支持目的,即使我们很少发布多个版本的版本 - 我们偶尔需要修补.
确保一致性.现在我们达到2.9.我们即将进入2.10(两点九,最多两点十).不幸的是,非技术人员正在读这个像一个有理数的人(两点一).他们无法理解为什么我们不只是去3.0版 - 就像计数一样.(为了支持目的,内部版本号仅显示在"帮助/关于"屏幕上).
我不认为产品(主要数量)升级是有保证的,特别是由于市场预期的这种预期.
有没有正确的方法在这里继续?(2.10或3.0或更好的东西 - 或者甚至更重要?)
(注意:我已经花了一些时间来确保版本号现在显示为2.09,而不是2.9(在我们的网站上,产品启动画面和各种其他公共场所等),所以当我们移动到2.10时它可能更有意义,但这可能同样令人困惑,因为2.09实际上是一个比2.8更低的有理数......)
也可以看看:
我有一个WinForms应用程序,需要根据运行它的操作系统以特定方式(特别是某个安装程序的shell)运行.
我正在使用System.OperatingSystem类,并结合使用PlatFormID,Major,Minor和Build数字,这些数字可以帮助您完成大部分工作.
不幸的是,OperatinSystem对象的特性,不允许您在某些平台之间进行精确区分.例如Vista和Windows Server 2008,或Vista 32位和Vista 64位.同样,XP 64位Professional似乎与Server 2003具有相同的版本信息.
那么是否有可能从WinForms应用程序(使用c#)确定您正在运行的Windows操作系统?
(使用WinForms和C#. - > .Net 2.0)
我正在基于表中的数据向TreeView添加节点.除了显示在节点上的标题外,该数据还包含位图.
我想使用表中的Bitmap作为TreeViewNode上的图标,而不是来自预先存在的ImageList的图标.(通常,您可以在图像列表中指定图像的键或索引来设置节点的图像.)
这是可能的还是我需要将我的数据中的Bitmap添加到ImageList(在运行时),然后使用该ImageList填充节点上的图像.
在Visual Studio(2008)中,当您在Windows窗体上放置文本框并将其拖动时,您会看到非常有用的指南,可帮助您将其(左,右,顶部或底部)与其他控件对齐.您还会看到一行代表该控件中文本的底部,帮助您将文本框中的文本与标签中的文本对齐,而不管该标签的高度如何.
我有用户控件,其中包含一个文本框和几个按钮.我是否可以强制VS2008设计器从用户控件中的文本框中向我显示文本底部的相同行?如果是这样,怎么样?
如果您在一个继承自基类的类中编写代码,并且想要在该基类上调用受保护或公共方法,那么调用base.MyProtectedMethod()
或this.MyProtectedMethod()
(在c#中)是最好的(正确还是错误)?有什么区别?两者似乎都有效.
例如:
public class MyBase()
{
....
protected void DoStuff()
{
// some stuff
}
}
public class MyChildClass() : MyBase
{
public MyNewMethod()
{
// do some work
this.DoStuff();
base.DoStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
这是两次相同的事情MyNewMethod
吗?
我对C#比较陌生.我有一个带按钮的窗口.如果窗口没有聚焦,我第一次点击按钮,第一次点击会抓住窗口的焦点,所有后续点击将执行各自的操作.
有没有办法执行与按钮关联的事件而不是抓住焦点?
可以编写此代码,以便在与具有null Parent的对象(x)进行比较时,将返回列表中具有null属性null的项吗?
MyObject obj = objList.FirstOrDefault(o => n.Parent.Equals(x.Parent));
Run Code Online (Sandbox Code Playgroud)
假设正确地重写了"Equals"方法,那么在"objList"中有一个带有null Parent的项目时会出现这种情况 - "对象引用未设置为对象的实例".例外.
我认为这是因为如果n.Parent为null,则不能调用其Equal方法.
无论如何,我目前使用这种方法:
MyObject obj = null;
foreach (MyObject existingObj in objList)
{
bool match = false;
if (x.Parent == null)
{
if (existingObj.Parent == null)
{
match = true;
}
}
else
{
if (existingObj.Parent != null)
{
if (x.Parent.Equals(existingObj.Parent))
{
match = true;
}
}
}
if (match)
{
obj= existingObj;
break;
}
Run Code Online (Sandbox Code Playgroud)
因此,虽然它确实有效,但它并不是很优雅.
在Windows 7(64位)上,Android SDK与Eclipse完美配合 - 我的第一个Android应用程序,使用第一个"Hello World"示例(在此处找到 - http://docs.xamarin.com/android/getting_started/hello_world-来自Xamarin)失败并显示错误"未为项目NameProject.csproj设置的OutputPath属性".
我试过从Xamarin重新运行安装程序,但仍然会出现此错误.
有人可以建议可能导致此问题的原因吗?非常感谢.
确切的错误:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(9,9):
Error: The OutputPath property is not set for project 'helloWorld3.csproj'.
Please check to make sure that you have specified a valid combination of
Configuration and Platform for this project.
Configuration='Debug'
Platform='BPC'.
This error may also appear if some other project is trying to follow a
project-to-project reference to this project, this project has been
unloaded or is not included in the solution, and the referencing project
does …
Run Code Online (Sandbox Code Playgroud) c# ×7
winforms ×4
windows ×2
.net-2.0 ×1
android ×1
c#-2.0 ×1
data-binding ×1
inheritance ×1
syntax ×1
treeview ×1
versioning ×1
xamarin ×1