小编sta*_*ica的帖子

单击.Net(Windows窗体)用户控件的事件

这可能是一个非常简单的问题,但出于某种原因,即使是正确的网络搜索方式也无法解决问题......

我正在尝试创建一个由几个标签和进度条组成的用户控件.但是,我希望整个控件都有一个"Click"事件,无论单击控件内的哪个项目,都会引发该事件.我创建了一个分配给每个控件的"HandleClick"过程:

    private void HandleClick(object sender, EventArgs e)
    {
        // Call the callback function, if we were asked to
        if (OnClick != null)
        {
            EventArgs ee = new EventArgs();
            OnClick(this, ee);
        }
        else
        {
            MessageBox.Show("OnClick was null!");
        }
    }
Run Code Online (Sandbox Code Playgroud)

此实例中的OnClick是在控件级别定义的变量:

    public new event EventHandler OnClick;
Run Code Online (Sandbox Code Playgroud)

现在,这只适用于表单.在一个标签上显示MessageBox,然后在封闭表单上调用该事件.所有其余的都显示了消息框.

我觉得这应该是显而易见的,但是一个沮丧的下午让我觉得我错过了一些不言自明的东西,但是当我看到它时,我会感觉自己像一个完整的小丑......任何人都可以不要再傻笑我的愚蠢到足以让我知道我哪里出错了?

.net c# visual-studio-2008 windows-forms-designer

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

ListBox中的多列数据

我想在我的ListBox中有多列。以下是我在应用程序中获得的图片示例。

没有多列的列表框的图片

我实际上有大约7列,但是只打印了两列,以使其更易于理解。

因此,第一列会说date,第二列会说name。如您所见,数据没有进入自己的列。

这是我的代码:

this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
// 
// listBox1
// 
this.listBox1.FormattingEnabled = true;
this.listBox1.HorizontalScrollbar = true;

foreach (XmlNode xn in xnList)
{
    string date = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "Date").FirstChild.Value;
    string id = xn.OfType<XmlNode>().FirstOrDefault(n => n.Name == "ID").FirstChild.Value;
    if (date == cari)
    {
        this.listBox1.Items.AddRange(new object[] {                    
        //dateBox.Text,
        dateBox.Text + "\r\n" + date});

        this.listBox1.Items.AddRange(new object[] {                    
        "sarabrown"});
    }
}
this.listBox1.Location = new System.Drawing.Point(12, 28);
this.listBox1.MultiColumn = true;
this.listBox1.Name = "listBox1";
this.listBox1.ScrollAlwaysVisible = true;
this.listBox1.Size …
Run Code Online (Sandbox Code Playgroud)

.net c# listbox multiple-columns winforms

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

在构建器模式中管理顺序的首选方法是什么?

我创建了一个流畅的构建器样式模式,用于帮助我加载测试数据.某些方法的顺序很重要,并且想知道管理正确序列的首选方法是什么.

我现在有以下内容:

using NUnit.Framework;

[TestFixture]
public class DataBuilderTests
{
    [Test]
    public void Can_NAME()
    {
        new DataLoader()
            .Start() // must be called first
            .Setup() // then called next
            .LoadEmployees() // optional order not NB
            .LoadProducts() // optional order not NB
            .StartCleanup() // begin cleanup
            .CleanupEmployees() // optional order not NB
            .CleanupProducts() // optional order not NB
            .End();
    }
}

public class DataLoader
{
    public DataBuilderSetup Start()
    {
        return new DataBuilderSetup(this);       
    }
}

public class DataBuilderSetup
{
    private readonly DataLoader _dataLoader;

    public …
Run Code Online (Sandbox Code Playgroud)

c# nunit design-patterns

5
推荐指数
2
解决办法
981
查看次数

antlr4:创建ParseTrees时忽略超级令牌

目前我正在使用antlr4为实时语言PEARL开发编译器.

使用ANTLR4,我的ParseTree中填充了超级令牌,例如.用于结束语法单位的分号.

有没有办法告诉ANTLR忽略这些令牌?

感谢您的帮助和建议!

马塞尔

antlr4

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

在interop方法中为`ref struct`参数传递`null`引用

我正在使用C#来调用DLL函数.

[DllImport("MyDLL.dll", SetLastError = true)]
public static extern uint GetValue(
        pHandle handle,
        ref somestruct a,
        ref somestruct b);
Run Code Online (Sandbox Code Playgroud)

如何传递null参数3 的参考?

当我尝试时,我收到编译时错误:

无法转换<null>为ref somestruct.

我也试过了IntPtr.Zero.

c# null interop parameter-passing value-type

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

你如何在 PHP 中执行 Redis 事务?

  1. 不使用任何像 predis 这样的库,从 PHP 调用 Redis 的最佳方法是什么?

    我目前使用该exec命令,但想知道是否有更好的方法。

    exec('redis-cli SET foo bar');
    
    Run Code Online (Sandbox Code Playgroud)
  2. 其次,如何进行交易?我可以从命令行这样做...

    $ redis-cli
    redis 127.0.0.1:6379> MULTI
    OK
    redis 127.0.0.1:6379> INCR FOO
    QUEUED
    redis 127.0.0.1:6379> INCR BAR
    QUEUED
    redis 127.0.0.1:6379> EXEC
    1) (integer) 1
    2) (integer) 1
    
    Run Code Online (Sandbox Code Playgroud)

    但是,如果我尝试这样做,则每个单独的命令都会单独执行,而不是在同一个事务中执行,最终我会收到错误消息 (error) ERR EXEC without MULTI

    exec('redis-cli MULTI');
    exec('redis-cli INCR FOO');
    exec('redis-cli INCR BAR');
    exec('redis-cli EXEC');
    
    Run Code Online (Sandbox Code Playgroud)

php redis

5
推荐指数
2
解决办法
3630
查看次数

何时指定约束`T:IEquatable <T>`,即使它不是严格要求的?

简而言之,我正在寻找以下两种方法中哪一种应该是首选的指导(以及为什么):

static IEnumerable<T> DistinctA<T>(this IEnumerable<T> xs)
{
    return new HashSet<T>(xs);
}

static IEnumerable<T> DistinctB<T>(this IEnumerable<T> xs) where T : IEquatable<T>
{
    return new HashSet<T>(xs);
}
Run Code Online (Sandbox Code Playgroud)
  • 赞成的论据DistinctA:显然,约束T不是必需的,因为HashSet<T>它不需要它,并且因为任何实例T都保证可转换为System.Object,它提供与IEquatable<T>(即两种方法EqualsGetHashCode)相同的功能.(虽然非泛型方法会导致拳击与值类型,这不是我在这里关注的.)

  • 赞成的DistinctB参数:泛型参数约束虽然不是绝对必要的,但是使调用者可以看到该方法将比较实例T,因此是一个正确EqualsGetHashCode应该正常工作的信号T.(毕竟,在没有明确实现的情况下定义一个新类型Equals并且GetHashCode非常容易发生,因此约束可能有助于及早发现一些错误.)

问题:是否存在建立和记录的最佳实践,建议何时指定此特定约束(T : IEquatable<T>),何时不指定?如果没有,上述论点之一是否有任何缺陷?(在这种情况下,我更喜欢经过深思熟虑的论点,而不仅仅是个人意见.)

c# generics iequatable type-constraints type-parameter

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

支付表设计

我有一个表,用于保存项目中的人员的数据.该表的Start日期字段为可以为空的End日期字段.所以,一个人从一个项目StartEnd.

目前,他们总是对项目收费.但是我现在有了一个新的要求,即在一段时间内,它们可以是不可计费的,但仍然在进行该项目.因此,他们已被分配到项目中并且正在工作,但由于某种原因,客户不会在分配期间的一部分时间收费,或者可能以较低的费率收费.

我的想法是有一个排除类型表,链接到具有开始日期和结束日期的人员分配表,以及一个Rate列,可以设置为零免费,或者作为覆盖值一段时间.

这看起来像是有效的设计吗?由于该人在95%的时间内被收费,并且可能永远不会被排除在外,因此我有一个排除表更有意义.

如果有人知道如何做得更好,那就太好了.

目前,我还有一个"日历"表,我根据人员日程安排的开始/结束日期加入,以获得每日费率.那么,我可以加入排除日期,看看是否有覆盖率?

我可能会在设计中发现的问题是很多连接基于:

 ON DateValue BETWEEN Start AND End
Run Code Online (Sandbox Code Playgroud)

而且我不确定它们是最有效的连接.

sql database-design

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

"断点的条件未能执行......'变量'未声明.它可能无法访问......"为什么?

相关问题:

我在Visual Studio 2013 Professional中遇到条件断点问题.断点条件是指一个局部变量(tagString),它在断点之前的代码行中声明和初始化.在遇到断点时,调试器声称......

断点的条件无法执行.条件是tagString.Contains("…").返回的错误是' tagString未声明.由于其保护级别,它可能无法访问.

此错误消息似乎没有任何意义,因为该变量声明且可访问:

屏幕截图演示了这个问题

我正在运行此代码的Debug版本.为什么调试器声称未定义局部变量,如何解决此问题?


PS:我刚刚意识到条件断点不起作用只是一个大问题的一小部分:调试器也无法监视该变量,也不会显示在Locals窗口中.

PPS:我已经尝试过Rick Strahl博客文章中提出的建议,"Visual Studio 2013'无法评估表达式'调试器异常",但无济于事.

debugging breakpoints conditional-breakpoint visual-studio-debugging visual-studio-2013

5
推荐指数
0
解决办法
2089
查看次数

将 Angular Universal 部署到 IIS

我在将 Node.js 部署到 IIS 时遇到问题web.config

> <handlers>
>         <add name="iisnode-ng-universal" path="dist/server.js" verb="*" modules="iisnode" />
>     </handlers>

 <rule name="ng-universal" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{HTTP_HOST}" pattern="test" />
        </conditions>
        <action type="Rewrite" url="dist/server.js" />
    </rule>
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

图片

这是我的网络文件树的外观:

网络文件

我试图给予完全许可IIS_IUSRSIUSR但它似乎不起作用。像这篇文章建议的那样: iisnode 在处理请求时遇到错误

node.js express angular-universal angular

5
推荐指数
2
解决办法
6866
查看次数