假设您有一个使用CancelEventArgs类引发事件的事件提升器方法(OnXXX),使OnXXX方法返回e.Cancel的值有什么问题吗?
例如:
Public Sub ProcessFiles(folder as DirectoryInfo)
For each file in folder.GetFiles()
If OnProcessingFile(New FileEventArgs(file)) Then
.....ProcessFileCode
Else
Exit For
End If
Next
End Sub
Protected Function OnProcessingFile(ByVal e As FileEventArgs) As Boolean
RaiseEvent ProcessingFile(Me, e)
Return Not e.Cancel
End Function
Run Code Online (Sandbox Code Playgroud)
对我来说似乎是一个比这更清洁的解决方案:
Public Sub ProcessFiles(folder as DirectoryInfo)
Dim e As FileEventArgs
For each file in folder.GetFiles()
e = New FileEventArgs(file)
OnProcessingFile(e)
If e.Cancel Then
Exit For
End If
.....Process File Code
Next
End Sub
Run Code Online (Sandbox Code Playgroud) 我在C#/ Winforms中有一个应用程序,它允许用户在网格上放置对象以创建游戏关卡.它有几个工具用于放置瓷砖/灯/门/实体等.目前我只使用枚举来存储当前选定的工具,并有一个switch语句来运行每个工具代码.因为我一直在为应用程序添加更多工具,所以它开始像意大利面一样,有很多重复的代码.
这是我的编辑器类中的鼠标按下功能的缩减版本:
public void OnEditorViewMouseDown(Point mousePos)
{
// Check if the click is out of bounds.
if (IsLocationOOB(mousePos)) return;
if (CurrentTool == ToolType.GroundTile)
{
// Allow drags along whole tiles only.
m_DragManager.DragType = DragManager.DragTypeEnum.Tile;
m_DragManager.StartDrag(mousePos);
}
else if (CurrentTool == ToolType.WallTile)
{
// Allow drags along grid edges only.
m_DragManager.DragType = DragManager.DragTypeEnum.Edge;
m_DragManager.StartDrag(mousePos);
}
else if (CurrentTool == ToolType.PostTile)
{
// Allow drags along grid points only.
m_DragManager.DragType = DragManager.DragTypeEnum.Point;
m_DragManager.StartDrag(mousePos);
}
else if (CurrentTool == ToolType.AreaLight)
{
// …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套的数据对象,用于类别中的一组项目.每个类别都可以包含子类别,子类别的深度没有设置限制.(文件系统将具有类似的结构.)它看起来像这样:
class category
{
public int id;
public string name;
public IQueryable<category> categories;
public IQueryable<item> items;
}
class item
{
public int id;
public string name;
}
Run Code Online (Sandbox Code Playgroud)
我将一个类别列表传递给我的视图IQueryable<category>.我想将类别输出为一组嵌套的无序列表(<ul>)块.我可以嵌套foreach循环,但子类别的深度将受到嵌套foreach块数量的限制.在WinForms中,我使用递归来完成类似的处理来填充a TreeView,但我还没有看到在ASPX MVC视图中使用递归的任何示例.
可以在ASPX视图中完成递归吗?是否有其他视图引擎包含视图输出的递归?
我想要一个类似于Firefox的行为,其中可用选项卡列表仅在至少存在两个选项卡时才会显示.
我还是找不到那样的东西.
我最好的想法是手动更改布局:
虽然这可能会工作,感觉就像一个黑客或解决方法......
有什么好主意吗?
理想情况下,解决方案应该适用于Java 1.5和1.6 ......但我也很高兴只有1.6的解决方案.
以下方法采用指向xml文件的路径:
tree.LoadContentFile(path);
Run Code Online (Sandbox Code Playgroud)
我从本地文件系统(或使用Server.MapPath())传递完整路径,但每次我都会收到此错误:
[Path]不是有效的虚拟路径.
编辑:我正在使用Telerik RadTreeView.
示例路径是: "C:\inetpub\wwwroot\sitename\OutlookNavigation\tree.xml"
我究竟做错了什么?
它是用PHP编写的,
有时当我重启mysql时
将报告:
Debug Warning:line 24 - mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Run Code Online (Sandbox Code Playgroud)
有没有办法检测$ result是否是有效的MySQL结果资源?
使用Python,我想比较列表中的每个可能的对.
假设我有
my_list = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
我想对列表中的2个元素的每个组合进行操作(让我们称之为foo).
最终结果应该是相同的
foo(1,1)
foo(1,2)
...
foo(4,3)
foo(4,4)
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是手动迭代两次列表,但这似乎不是pythonic.
我有以下问题:
public Boolean Exists(String userName)
{
IRepository<User> = new UserRepository();
User user = userRepository.First(u => u.Name == userName);
if (user == null) return false;
// Exists!
return true;
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,我无法检查User对象是否为null.在我到达那里之前,我得到InvalidOperationException一句话" 序列中没有元素 ".
这对我来说似乎很奇怪,特别是因为我不想用异常建立控制流(例如封装在try..catch中并在各个部分中返回true/false).
这里发生了什么?这是正常的还是我的存储库有问题(提示?!)
顺便说一句,这个代码工作完美,当存在我正在寻找的元素(用户检索等).它只在没有匹配时才起作用.
我希望能够使用EventTrigger设置属性,这有很多问题.
1)EventTriggers仅支持Actions,因此我必须使用storyBoard来设置我的属性.
2)一旦我使用故事板,我有两个选择:
在下面的示例中,我想在单击按钮时将IsChecked属性设置为False,并且我希望用户能够更改IsChecked和/或我希望能够更改代码中的属性.
例:
<EventTrigger
SourceName="myButton"
RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="myCheckBox"
Storyboard.TargetProperty="IsChecked"
FillBehavior="Stop">
<DiscreteBooleanKeyFrame
KeyTime="00:00:00"
Value="False" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
Run Code Online (Sandbox Code Playgroud)
我意识到在故事板完成后我可以使用"已完成"事件将值设置为False.但是,在这种情况下,我想在XAML中包含逻辑,因为此逻辑将用于自定义控件,并且仅特定于UI.
当我按下Alt +#时,如何让Vim切换到某个标签?例如,要进入第三个选项卡,我会按Alt + 3(就像Firefox中的行为一样).
编辑:另外,我如何制作Control + tab == gt,Control + shift + tab == gT