小编TK.*_*TK.的帖子

c#获取TreeView Parent节点列表

如果我有一个TreeView(myTreeview),我怎样才能获得作为父节点的所有节点的列表?即有孩子的节点

c# treeview parent-node winforms

2
推荐指数
1
解决办法
1万
查看次数

c#非线性渐变画笔?

有没有一种方法可以用来在c#中生成非线性渐变画笔?

澄清:我不是在寻找可以应用于非线性路径的渐变.相反,我正在寻找两种颜色之间的渐变,这两种颜色之间以非线性方式逐渐消失,即在渐变开始时变化的速度更快,而在画笔接近结束点时变慢.

使用gdi +在c#中是否可以实现这一点?

c# gdi+

2
推荐指数
1
解决办法
3835
查看次数

用于解析错误类型的f#惯用类型解析解决方案

我刚刚开始使用F#,但我有一些类似于以下内容的代码:

let square x = x*x

let result = square 5.1

let result' = square 12
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致以下错误: This expression was expected to have type float but here has type int

这个问题是否有惯用的F#解决方案,还是我的想法被我的C#体验所污染?

f# inline type-resolution

2
推荐指数
1
解决办法
103
查看次数

c#如何在ListView中展开项目以占用多行?

目前我有一个ListView(使用详细信息视图).我想实现这样的行为:当用户选择单个项目(日志条目)时,日志条目会扩展(从一行到多行),以提供有关发生的错误的更详细信息.

我的问题是:这可能吗?如果是这样,我可以使用一个很好的资源来帮助我吗?

编辑:

如果我HAVE使用WPF,那么我猜病态使用ElementHost的与控制.但是,我完全不知道如何设计/编码/使用WPF组件.有什么建议?

c# wpf listview winforms

1
推荐指数
1
解决办法
6144
查看次数

C#停止树视图选择一个或多个TreeNodes

我有一个TreeView控件显示有组织的层次结构中的多个TreeNode.我想阻止用户选择最高级别的节点(这是通过使用BeforeSelect事件实现的).如果用户选择它们,我还想阻止TreeView突出显示顶级节点,即停止TreeView更改节点的背景颜色并"选择"它.

我使用的TreeView是控件的WinForms版本.

以下是我目前正在尝试使用的源代码:

private void tree_BeforeSelect ( object sender, TreeViewCancelEventArgs e )
{
    if ( e.Node.Level == 0 )
    {
        e.Cancel = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

这确实取消选择节点,但仅在不希望的闪烁(~200ms)之后.

c# treeview treenode winforms

1
推荐指数
1
解决办法
7728
查看次数

处理System.Drawing对象

是否有必要手动管理System.Drawing对象的生命周期?

目前我正在使用"使用"语句来最小化画笔和其他绘图对象的寿命,例如

using ( Brush br = new SolidBrush( color ) )
{
    // Do something with br
}
Run Code Online (Sandbox Code Playgroud)

这是必要的还是让垃圾收集器在需要的时候发挥作用是否安全?

作为问题的一个快速...人们认为最简单的方法是什么?

c# drawing garbage-collection

1
推荐指数
1
解决办法
2407
查看次数

列出VS2008项目中所有类的名称

是否有一种快速而简单的方法来获取Visual Studio 2008(c#)项目中所有类的列表?它们有很多,我只是懒得不想手动做.

c# class list visual-studio-2008

0
推荐指数
1
解决办法
373
查看次数

如何检查特定线程上是否正在调用函数?

如果我有线程A,它是主要的应用程序线程和辅助线程.如何检查线程B中是否正在调用函数?

基本上我正在尝试实现以下代码snippit:

public void ensureRunningOnCorrectThread()
{
    if( function is being called within ThreadB )
    {
         performIO()
    }
    else
    {
         // call performIO so that it is called (invoked?) on ThreadB
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中执行此功能,还是有更好的方法来查看问题?

编辑1

我已经注意到MSDN文档中的以下内容,虽然我不知道它是否是一件好事!:

// if function is being called within ThreadB
if( System.Threading.Thread.CurrentThread.Equals(ThreadB) )
{

}
Run Code Online (Sandbox Code Playgroud)

编辑2

我意识到我以错误的方式看待这个问题(感谢下面的答案帮助我看到了这一点)我所关心的是在ThreadA上不会发生IO.这意味着它可能发生在ThreadB或任何其他线程上,例如BackgroundWorker.我已经决定在上面的f语句的else部分中创建一个新的BackgroundWorker,以确保以非阻塞的方式执行IO.我不完全确定这是我的问题的最佳解决方案,但它似乎工作!

c# multithreading

0
推荐指数
1
解决办法
1600
查看次数