小编JYe*_*ton的帖子

如何滚动到ListBox的底部?

我使用Winforms ListBox作为一个小事件列表,并希望填充它以便最后一个事件(底部)可见.该SelectionMode设置为none.用户可以滚动列表,但我希望它开始滚动到最后.

看着缺少的东西像支持ScrollIntoView,EnsureVisible,我假设我将需要创建一个从Control继承的自定义控制; 但是我不知道该怎么做.

一些指针?

c# listbox winforms

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

WinForms C#中的优雅日志窗口

我正在寻找一种有效的方法来实现Windows窗体应用程序的日志窗口.在过去,我已经使用TextBox和RichTextBox实现了几个,但我仍然不完全满意这个功能.

此日志旨在向用户提供各种事件的近期历史记录,主要用于数据收集应用程序,其中可能会对特定事务的完成方式感到好奇.在这种情况下,日志不必是永久性的,也不必保存到文件中.

首先,一些提出的要求:

  • 高效快速; 如果快速连续地将数百行写入日志,则需要消耗最少的资源和时间.
  • 能够提供最多2000行左右的可变回滚.更长的时间是不必要的.
  • 突出和颜色是首选.不需要字体效果.
  • 达到回滚限制时自动修剪线条.
  • 添加新数据时自动滚动.
  • 奖励但不是必需的:在手动交互期间暂停自动滚动,例如用户正在浏览历史记录.

到目前为止我一直用来编写和修剪日志:

我使用以下代码(我从其他线程调用):

// rtbLog is a RichTextBox
// _MaxLines is an int
public void AppendLog(string s, Color c, bool bNewLine)
{
    if (rtbLog.InvokeRequired)
    {
        object[] args = { s, c, bNewLine };
        rtbLog.Invoke(new AppendLogDel(AppendLog), args);
        return;
    }
    try
    {
        rtbLog.SelectionColor = c;
        rtbLog.AppendText(s);
        if (bNewLine) rtbLog.AppendText(Environment.NewLine);
        TrimLog();
        rtbLog.SelectionStart = rtbLog.TextLength;
        rtbLog.ScrollToCaret();
        rtbLog.Update();
    }
    catch (Exception exc)
    {
        // exception handling
    }
}

private void TrimLog()
{
    try
    {
        // Extra …
Run Code Online (Sandbox Code Playgroud)

c# logging winforms

56
推荐指数
6
解决办法
5万
查看次数

Switch案例中额外支撑的目的是什么?

我对这件事很好奇......见例子:

switch(x)
{
    case(a):
        {
        //do stuff
        }
        break;
    case(b):
        //do stuff
        break;
}
Run Code Online (Sandbox Code Playgroud)

我的一生都像case b那样做了,但是因为C#允许我使用它,而Visual Studio允许我崩溃那个东西,我很好奇 - 案例a(带括号)和案例b之间的真正区别是什么?

c# switch-statement

56
推荐指数
4
解决办法
3869
查看次数

查找字符串中指定字符的所有索引

例如,如果我有"scissors"变量,并想知道所有出现的字母的位置"s",它应该打印出来1, 4, 5, 8

如何以最有效的方式在JavaScript中执行此操作?我不认为循环整体是非常有效的

javascript string indexing

56
推荐指数
7
解决办法
7万
查看次数

找不到VS 2017元数据文件'.dll

我知道还有另一个问题确实存在同样的问题,但是我通过了所有这些答案,没有人帮助过我.:((这是问题.)

我刚刚创建了一个新的ASP.NET MVC项目,并在解决方案中加入了一些'.dll'.现在,当我尝试构建项目时,我在5个库中的3个库中收到如下所示的错误消息.

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active
Run Code Online (Sandbox Code Playgroud)

当我转到该.dll的bin\debug文件夹时,我看到它是空的,而另一个.dll我没有收到错误消息,不是空的.但我无法解决这个问题或者我为实现这一目标所做的工作.

最常见的回答是去性质的的解决方案,去配置取消 - > 应用 - > 查询申请了,但没有奏效

c# asp.net-mvc metadata visual-studio-2017

54
推荐指数
7
解决办法
8万
查看次数

2的补码优于1的补码?

二进制数系统中负数表示中2的补码优于1的补码有什么优势?它如何影响二进制系统中存储在某个位数表示中的值的范围?

binary negative-number

51
推荐指数
3
解决办法
9万
查看次数

如何在表单上双重缓冲.NET控件?

如何DoubleBuffered在遭受闪烁的表单上设置控件的受保护属性?

c# doublebuffered flicker winforms

48
推荐指数
8
解决办法
6万
查看次数

在C#中调整HttpWebRequest连接超时

我相信经过长时间的研究和搜索,我发现我想做的事情可能更好,通过建立一个异步连接并在所需的超时后终止它......但我会继续问,无论如何!

快速代码片段:

HttpWebRequest webReq = (HttpWebRequest)HttpWebRequest.Create(url);
webReq.Timeout = 5000;
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); 
// this takes ~20+ sec on servers that aren't on the proper port, etc.
Run Code Online (Sandbox Code Playgroud)

我有一个HttpWebRequest多线程应用程序中的方法,我连接到大量的公司Web服务器.在服务器没有响应的情况下HttpWebRequest.GetResponse(),即使我指定的超时仅为5秒,大约需要20秒才能超时.为了定期通过服务器,我想跳过连接时间超过5秒的服务器.

所以问题是:"是否有一种简单的方法来指定/减少WebRequest或HttpWebRequest的连接超时?"

c# timeout httpwebrequest

48
推荐指数
5
解决办法
9万
查看次数

.NET"致命执行引擎错误"故障排除

摘要:

我定期在一个我似乎无法调试的应用程序上获得.NET致命执行引擎错误.出现的对话框仅提供关闭程序或将有关错误的信息发送给Microsoft.我已经尝试查看更详细的信息,但我不知道如何使用它.

错误:

该错误在应用程序下的事件查看器中可见,如下所示:

.NET运行时版本2.0.50727.3607 - 致命执行引擎错误(7A09795E)(80131506)

运行它的计算机是Windows XP Professional SP 3.(Intel Core2Quad Q6600 2.4GHz w/2.0 GB RAM)其他基于.NET的项目缺少多线程下载(见下文)似乎运行得很好.

应用:

该应用程序使用VS2008在C#/ .NET 3.5中编写,并通过安装项目安装.

该应用程序是多线程的,使用System.Net.HttpWebRequest及其方法从多个Web服务器下载数据.我已经确定.NET错误与线程或HttpWebRequest有关,但由于这个特殊错误似乎无法调试,因此我无法接近.

我尝试过处理多个级别的错误,包括Program.cs中的以下内容:

// handle UI thread exceptions
Application.ThreadException += Application_ThreadException;

// handle non-UI thread exceptions
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

// force all windows forms errors to go through our handler
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Run Code Online (Sandbox Code Playgroud)

更多笔记和我尝试过的...

  • 在目标计算机上安装了Visual Studio 2008并尝试在调试模式下运行,但仍然出现错误,没有提示源代码在何处发生.
  • 从其安装的版本(Release)运行程序时,错误会更频繁地发生,通常在启动应用程序的几分钟内.在VS2008内部以调试模式运行程序时,它可能会在生成错误之前运行数小时或数天.
  • 重新安装.NET 3.5并确保应用所有更新.
  • 沮丧地打破随机隔间物体.
  • 虽然日志记录似乎加剧了问题(并且从未提供任何数据),但是在尝试捕获和记录异常时处理线程和下载的代码的重写部分.

题:

我可以采取哪些步骤来排除或调试此类错误?内存转储等似乎是下一步,但我没有经验解释它们.也许在代码中我可以做更多的事情来尝试捕获错误...如果"致命执行引擎错误"提供更多信息会很好,但互联网搜索只告诉我这是很多常见错误与.NET相关的项目.

.net .net-4.0 .net-3.5 fatal-error

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

如何在mysql中将字符串转换为浮点数?

我有一个包含存储为strings(VARCHAR)的纬度和经度值的表,我想将其转换为FLOAT (10,6).

但是,似乎没有一种直接的方法来使用CAST()或执行此操作CONVERT().

如何轻松转换这些列?这是一次性转换.

mysql type-conversion

42
推荐指数
3
解决办法
9万
查看次数