小编Cha*_*thJ的帖子

如何指定可以在 C# ColorDialog 中选择哪些颜色?

在 Visual C#.NET 中:

我希望能够制作一个颜色对话框,并拥有它以便用户只能选择几种颜色(特别是可用于命令提示符/批处理文件的颜色)。这是怎么做的?如何限制用户可以选择的颜色?

另外,有没有办法“停靠”颜色对话框,使其不会以新形式打开,而是保持在我的主形式中?

.net c# colordialog winforms

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

使用UDF拆分值对和创建表

我一直在尝试编写一个Table-Valued函数,它将值对作为参数并返回一个包含两列的表.

以下是我正在尝试的功能签名.

FUNCTION [dbo].[ValuePairParser]( @DelimitedValuePairs VARCHAR(MAX),
                                  @Delimiter CHAR(1), 
                                  @ValuePairDelimiter CHAR(1) ) 
  RETURNS @ValuePairTable
  TABLE ( Id INT, Code INT ) 
Run Code Online (Sandbox Code Playgroud)

我想调用下面的方法

@ValuePairs VARCHAR(MAX) = '1:1, 1:2, 1:4, 2:3, 1000:230, 130:120,'

ValuePairParser (@ValuePairs, ',', ':')
Run Code Online (Sandbox Code Playgroud)

你能看到任何好的方法来拆分ValuePairs sting并创建一个包含两列的表吗?

sql t-sql sql-server sql-server-2005 user-defined-functions

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

清除列表框中的选中项目而不触发itemcheck事件

我在form2(clbForm2)中有一个checkedlist框,我明确地将它映射到项目检查事件.现在我需要从form2中取消选中Form1中控件的所有选中项.在取消选中项目时,它会触发项目检查事件.有没有办法跳过这个事件.我在其中编写代码,我不想在从form2调用时运行.请建议一个好方法.

.net c# mdi checkedlistbox

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

我需要C#操作员的帮助

我有一个比较2个布尔值的程序,比如,conditionX和conditionY.

两者最初都设置为false,但在一系列开关之后,其中至少有一个变为true.

我需要测试conditionX和conditionY.如果其中任何一个出现为true,则测试返回true,但如果它们都返回false,则测试返回false.

这是我需要帮助的部分.如果它们都返回true,则测试必须返回FALSE.

而且,在这里,我画了一个空白.我知道AND运算符只返回true,如果两者都为真,而OR运算符将返回true,如果其中至少有一个返回true.

是否有一个运算符,如果它们都返回true/false,则返回false,但如果其中至少有一个为真,则返回true?

.net c# operators xor

2
推荐指数
4
解决办法
163
查看次数

如何捕获Java中缺少对象导致的异常?

我有一个非常简单的方法:

public int getScore() {
    return game.gameWindow.userBestScore;
}
Run Code Online (Sandbox Code Playgroud)

问题是它可能发生该game对象或gameWindow不存在.我不想得到Null Pointer Exception.怎么能以正确的方式捕获它?我可以这样做吗:

   public int getScore() {
         try{
             return game.gameWindow.userBestScore;
          } catch(NullPointerException e){
              return -1;
          }
   }
Run Code Online (Sandbox Code Playgroud)

java null return try-catch nullpointerexception

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

如何在执行功能期间使应用程序加载屏幕

我想在执行功能期间创建加载屏幕 - 比如在游戏,新窗口或某些图形中加载屏幕.

所以我按下按钮"开始" - 应用程序开始做一些东西,子窗体窗口显示图形 - "功能正在进行中,请稍候"

怎么做?

.net c# multithreading backgroundworker winforms

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

Windows 10上的WPF应用程序中的内存泄漏

有一个拥有数十万条C#线的大型企业WPF应用程序.我最近被分配到了它.该应用程序也使用(最新版本)第三方组件(众所周知的第三方组件提供商,我不想列出它们).

仅对某些合作伙伴发生内存泄漏.他们在早上启动应用程序并使用它几个小时才能完全占用内存并最终变慢,他们必须重新启动它(每天几次).他们有Windows 10机器(但这可能没有意义).我无法重现泄漏.

合作伙伴允许我发布应用程序的特殊版本,但不允许使用Memory Profilers(他们希望使用该应用程序进行生产,并且附加的Profiler会降低它的速度).所以我的想法是:让我们发布一个记录所有内容的特殊版本,包括用户点击和处理"可疑"GC根源.正如我所说的,我不知道我必须调试的代码,因此我使用内存分析器确定了可能泄漏的GC根.(是的,我制作了可能的罪魁祸首清单,例如依赖属性,静态列表等,但到目前为止还没有运气.正如我所说,我不太了解源代码,但我可以访问它并且可以修改它的任何部分.)

我实际上是在编写一个编程问题:除了用户行为和访问静态变量之外,我应该记录什么?也许我应该在每次用户操作后记录空闲内存.什么是适合的.NET方法?

合作伙伴将在重新启动应用程序之前复制并发送日志文件.

c# wpf memory-leaks memory-management windows-10

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

如何通过CLR完成内存管理

从很多天起,我正在寻找一个详细的文档,它将帮助我理解CLR完成的垃圾收集,其中包括一些编码行,包括一些函数,类,值类型和引用类型.如果有某些文件逐步显示,请分享.

c# memory clr garbage-collection memory-management

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

如何在Visual Studio解决方案中找到所有命名空间?

我问这个问题是因为我的解决方案中出现了编译错误:'GiftCard'是'命名空间'但是像'类型'一样使用

我尝试添加一个using指令,如:using GiftCard.Data.Entity;

这是找到GiftCard的正确命名空间,但错误不会消失.当我在我的代码中添加完全限定名称时,即GiftCard.Data.Entity.GiftCard

...然后错误消失,代码编译.

但我想知道为什么using指令不起作用.每次我需要使用类型时,我都不想用完全限定的名称来混淆我的代码.不知何故,错误消息说我将GiftCard定义为某个名称空间.那么如何在我的解决方案中找到所有命名空间,以便我知道它的定义位置,因为我需要删除或重命名GiftCard命名空间.

.net c# namespaces visual-studio visual-studio-2012

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

如何从后台线程访问WPF控件

我有一个RichTextBox,我正在尝试查找并突出显示与用户提供的查询匹配的所有单词.我的代码有效,但是对于相当大的文档,它会挂起UI,因为所有内容都是在UI线程上完成的.

List<TextRange> getAllMatchingRanges(String query)
    {
        TextRange searchRange = new TextRange(ricthBox.Document.ContentStart, ricthBox.Document.ContentEnd);
        int offset = 0, startIndex = 0;
        List<TextRange> final = new List<TextRange>();
        TextRange result = null;

        while (startIndex <= searchRange.Text.LastIndexOf(query))
        {
            offset = searchRange.Text.IndexOf(query, startIndex);

            if (offset < 0)
                break;
            }

            for (TextPointer start = searchRange.Start.GetPositionAtOffset(offset); start != searchRange.End; start = start.GetPositionAtOffset(1))
            {
                if (start.GetPositionAtOffset(query.Length) == null)
                    break;
                result = new TextRange(start, start.GetPositionAtOffset(query.Length));
                if (result.Text == query)
                {
                    break;
                }
            }
            if (result == null)
            {
                break;
            }
            final.Add(result); …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf multithreading

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