我有一个设置为EditOnF2的DataGridView.我在CellEndEdit事件处理程序中对数据进行了一些特殊处理,以设置单元格的值.我仍然希望EditOnKeystrokeOrF2的功能在按下Esc键时恢复为原始值.不幸的是,在CellEndEdit事件处理程序中,我没有看到告诉导致CellEndEdit事件被触发的方法.如果没有按下Esc键,我只想更改单元格的值.我怎么知道它是不是?
编辑:值得注意的是,在编辑单元格时,KeyDown事件不会被触发,也不会触发最终结束键击.
Edit2:我尝试过KeyPreview建议,但表单仍然没有捕获按下的Escape键.
编辑3:我一直在尝试尝试让这个工作.我最初发布了以下一些作为单独的帖子,但觉得将它包含在这里可能更相关.
我在DataGridView中有一个单元格,现在设置为EditProgrammatically.要捕获开始编辑的击键,我将cell.Value设置为等于击键.但是,这会破坏单元格的"Escape"功能 - 当您按下escape而不是恢复到原始值时,它将恢复为我以编程方式插入单元格的击键.
我相信如果我可以在一个单元格上设置"EditedFormattedValue",这将是我想要设置击键值的地方,但这似乎是只读的.我怎样才能完成我的尝试?
一个澄清的例子:如果单元格中的值为"54.3",并按"9"键,则开始编辑单元格并在其中放置"9".如果我点击Escape,而不是恢复到"54.3",它将恢复为"9".我想要的是它恢复到原来的"54.3"值.
所以,我试图从开始到结束来解决这个问题.我认为真正的问题是我覆盖了原始值,无法确定是否应该还原它.
Edit4:看起来CellValidating可能值得使用,但是当我试验它时,我看到了奇怪的行为.在一个新项目中,我创建了DataGridView并注册了各种事件,并看到在CellEndEdit之前触发了CellValidating.但是,在我试图让它工作的项目中,CellEndEdit正在触发CellFalidating.关于差异可能是什么的任何想法?
我在各种目录中有一堆子项目.我想将它们指定为一个列表,然后对于给定的目标,我想逐个浏览每一个,并调用subant.
我有类似的东西:
<target name="run">
<subant target="run" failonerror="true" verbose="true">
<fileset dir="${projectA}" includes="build.xml"/>
</subant>
<subant target="run" failonerror="true" verbose="true">
<fileset dir="${projectB}" includes="build.xml"/>
</subant>
</target>
Run Code Online (Sandbox Code Playgroud)
但我必须为每个项目和每个目标集指定一个单独的子行.我想做的就是创建一个子项目列表的属性,并以某种方式使用它.它应该很简单,但......
我已经完成了以下步骤: - 打开visual studio
- 创建新项目
- 选择"ADO.Net实体数据模型"
- 将其指向现有数据库
- 接受所有默认值.
- 然后它将"Model1.edmx"文件添加到我的解决方案和相应的"Model1.Designer.cs"文件中.
但是在输出中我得到以下错误:
"错误:由于以下异常,无法生成模型:'值不在预期范围内.'."
我之前从这个数据库创建了一个模型,所以我不认为错误是复杂的表设计的结果(事实并非如此).
还有其他人遇到此错误吗?
谢谢
在预定的时间间隔,我需要调用WCF服务异步调用另一个WCF服务.调度我已经解决的WCF服务调用.
我认为我需要的东西,我已经在stackoverflow上读到了必须...,(实质上)准备或更改WCF服务的代码,以便能够处理对它们的异步调用.如果是这样的话,那个简单的例子是什么样的?(也许是前后的例子)在.Net 3.5中还有必要吗?
其次我使用来自WCF服务的代理来执行对下一个WCF服务的调用,并且需要一个对WCF服务的异步调用的样本,如果它看起来与具有典型异步示例的BeginEnvoke和EndEnvoke的典型不同.
如果我对我的问题完全不满意,我会相信它,并且会感谢任何更正以建立更好的问题.
在我的C编程语言(又名:K&R)中,似乎没有提到多线程.这本书不如我想象的那么完整吗?多线程在写完之后出现了吗?我是否以错误的方式思考这个问题?
多线程的概念在哪里适合C世界?
编辑:我认为我原来的问题是:
这个矛盾是什么原因造成的?多线程的起源在哪里?如果是POSIX,那么如果不是C,那么POSIX写的是什么?C无法访问的一种装配形式?
所以我熟悉正则表达式的基础知识,但我正在寻找好的教程来学习除基础知识以外的任何东西.我也很感激任何链接到交互式问题,我可以输入正则表达式,看看他们是否解决了它.即使是我可以尝试通过自己的编码解决的中间或高级问题的想法也会很棒.
我们有一个运行在两个负载平衡服务器上的网站.我们使用ASP.Net缓存来缓存高使用率数据,从而帮助提高性能.但是,偶尔会有数据发生变化.当它发生时,我们需要清除负载平衡服务器上的相关缓存项.有没有人有一些容易实施的建议如何做到这一点?
我知道有一些软件可以为你管理(Microsoft Velocity for one).我也知道有其他选择可以使用单独的状态服务器等.但是,对于我们想要的东西,它们看起来都有点过分.我们现在只需要一种简单的机制来清除服务器上的特定缓存项.
谢谢你的任何建议.
如何在此模式中允许破折号?
$str = preg_replace ( "/[^a-z \d]/i", "", $str ) ;
Run Code Online (Sandbox Code Playgroud) 我遇到了泛型和新成员的问题.我写了一个泛型类,它对ObjectA类型的对象进行操作.ObjectB派生自ObjectA并隐藏了ObjectA的一些成员.当我提供ObjectB的类型作为泛型类的类型参数时,我希望当我调用ObjectB隐藏的任何成员时,我将调用ObjectB的实现.但是,CLR仍然调用隐藏成员(ObjectA的实现).这似乎不合逻辑,因为我明确地向泛型类提供了ObjectB的类型.这是泛型本身的问题,还是我做错了什么?
编辑:不幸的是,我无法访问ObjectA的源代码,我想要覆盖的成员不是虚拟的.如果我可以访问ObjectA的源代码,我会将该成员设置为虚拟,但由于我不能这样做,我"覆盖"该成员的唯一选择是通过"new"关键字.
class GenericClass<T> where T : ObjectA
{
public void DoWork(T item)
{
// When type parameter 'T' is ObjectB, should get ObjectB's implementation
item.Invoke();
}
}
class ObjectA
{
public void Invoke()
{
// A's implementation...
}
}
class ObjectB : ObjectA
{
public new void Invoke()
{
// B's implementation...
}
}
static void Main()
{
GenericClass<ObjectB> genericClass = new GenericClass<ObjectB>();
ObjectB objectB = new ObjectB();
genericClass.DoWork(objectB);
}
Run Code Online (Sandbox Code Playgroud)