草庐IT

c# - 在使用拖放时,我可以使 Treeview 展开用户悬停在其上的节点吗?

简述:.Net2.0中是否有任何内置函数可以在拖放操作正在进行时将鼠标悬停在TreeNode上?我在VisualStudio2005中使用C#。更详细:我已经使用多级、多节点树(想象组织结构图或文件/文件夹对话框)填充了一个Treeview控件,我想使用拖放操作在树中移动节点。拖放代码运行良好,我可以拖放到任何可见节点上,但是我希望我的控件在将文件拖到文件夹Pane上时表现得像Windows资源管理器一样。具体来说,我希望每个文件夹在悬停1/2秒左右时打开。我已经开始使用Threading和Sleep方法开发一个解决方案,但我遇到了问题,想知道是否已经有了一些东西,如果没有,我会努力学

c# - WPF:使路径的整个 "block"可点击

我的一些Button有一个特殊的ControlTemplate。这很好用,但由于我使用的是Path(在本例中,它的形状就像一个胖X),确切的路径是可点击的,而不是X角之间的小空间。是否有任何自动魔法可以使X的整个“block”可点击?我考虑过将路径包裹在一个矩形对象中,但我只是想确保我没有遗漏一些微不足道的东西。 最佳答案 AviadP.是正确的。这就是我所做的:这是有效的,因为当“HitTest”以确定鼠标点击的路径时,“透明”画笔被认为是一种常规颜色。 关于c#-WPF:使路径的整个

c# - 我应该尽可能使我的方法静态化吗?

我经常思考这个问题……这可能是个白痴问题,但还是要问。假设我有这个类:publicclassSomeClass{publicintAProperty{get;set;}publicvoidSomeMethod(){DoStuff(AProperty);}}这样做有什么好处吗:publicclassSomeClass{publicintAProperty{get;set;}publicstaticvoidSomeMethod(intarg){DoStuff(arg);}}唯一明显的优势是我现在可以直接访问SomeMethod。那么,在稍微重构允许的情况下,将这些类型的方法设为静态是一种好

c# - 如何使 DataGridView 单元格的字体具有特定颜色?

此代码可以很好地使单元格的背景变为蓝色:DataGridViewRowdgvr=dataGridViewLifeSchedule.Rows[rowToPopulate];dgvr.Cells[colName].Style.BackColor=Color.Blue;dgvr.Cells[colName].Style.ForeColor=Color.Yellow;...但是ForeColor的效果不是我所期望/希望的:字体颜色仍然是黑色,而不是黄色。如何让字体颜色变成黄色? 最佳答案 你可以这样做:dataGridView1.Selec

c# - 如何使我的表单透明,但我在上面绘制的内容却不透明?

我尝试将表单的不透明度设置为50%,然后在其上绘制一个字符串。似乎我在上面绘制的字符串也具有50%的不透明度。我如何绘制一个非透明字符串,但让表单背景显示50%?如果可能的话,我也愿意在WPF中执行此操作,但我需要明确的说明或示例项目,因为我以前从未这样做过。澄清一下,我希望表单背景是黑色,80%不透明到下面的内容,然后我想在上面绘制文本等,并让它看起来100%不透明。 最佳答案 这在WPF中很容易完成:在窗口上设置WindowStyle="None"(注意:这是必需的,您不能有透明度和标准窗口镶边)在窗口上设置AllowsTran

c# - 如何使 Html.CheckBoxFor() 在字符串字段上工作?

我将ASP.NETMVC3与Razor和C#结合使用。我正在制作一个表单生成器,所以我有一个包含以下对象集合的模型:publicclassMyFormField{publicstringName{get;set;}publicstringValue{get;set;}publicMyFormTypeType{get;set;}}MyFormType只是一个枚举,它告诉我表单字段是复选框、文本框、文件上传还是其他。我的编辑器模板看起来像这样(见评论):~/Views/EditorTemplates/MyFormField.cshtml@modelMyFormField@{switch(M

c# - 使 dataGridView 大小适合行和列的总大小

我想使dataGridView的大小适合列和行的总大小。关于总高度,我设法让它适合列的高度:constintdatagridLines=30;s.Height=dataGridView2.Columns[0].HeaderCell.Size.Height;for(bytei=0;i我尝试了一些方法来适应宽度,但没有成功。有什么建议吗?谢谢。 最佳答案 这应该有效:intheight=0;foreach(DataGridViewRowrowindataGridView1.Rows){height+=row.Height;}height

c# - 使 Web API 身份验证返回 401 而不是重定向到登录页面

我在WebMVC中有带有OWIN身份验证的WebAPI。我正在使用在我的WebMVC的Web.Config中,因此它重定向到登录页面。我正在使用[System.Web.Http.Authorize]属性来授权我的WebAPI。但不知何故,由于上述配置,API重定向到登录页面与我的MVC应用程序相同。我想做的是继续为WebMVC重定向功能,但为WebAPI返回401。我怎样才能做到这一点?我应该为WebAPI创建自定义授权属性吗?--编辑--我从这篇文章中找到了答案SuppressDefaultHostAuthenticationinWebApi.Owinalsosuppressinga

c# - 使闭包捕获的变量易变

闭包捕获的变量如何与不同的线程交互?在下面的示例代码中,我想将totalEvents声明为易变的,但C#不允许这样做。(是的,我知道这是错误的代码,这只是一个例子)privatevoidWaitFor10Events(){volatileinttotalEvents=0;//errorCS0106:_someEventGenerator.SomeEvent+=(s,e)=>totalEvents++;while(totalEvents编辑:人们似乎有点忽略了我的问题。我知道我不能在本地变量上使用volatile。我也知道示例代码代码不好,可以用其他方式实现,因此我的“错误代码”免责声明

c# - 如何使静态构造函数成为非私有(private)的?

C#中的静态构造函数不允许使用public、private等访问修饰符。然而,VisualStudio代码分析在C#安全类别中有一个警告,显示“CA2121:Staticconstructorsshouldbeprivate”。是否可以使静态构造函数成为非私有(private)的?或者这是VisualStudio代码分析的错误?澄清:我并不是要让任何构造函数成为非私有(private)的。所以为什么?”问题无关紧要。我只是对两个Microsoft工具之间的矛盾感到好奇,想看看是否有任何我不知道的静态构造函数的处理方式。 最佳答案 C