小编Spa*_*117的帖子

在 C++ 的 EDITTEXT 框中禁用文本编辑,同时保持启用滚动

所以我的困境来自于使用 Windows API 在 C++ 中制作 UI。我需要一个 EDITTEXT 框,它允许滚动但不允许用户编辑显示在框中的文本。到目前为止,它看起来像这样。

EDITTEXT        ID_STATUS,7,237,439,50, WS_VSCROLL | ES_MULTILINE 
Run Code Online (Sandbox Code Playgroud)

如果文本很长,这允许滚动文本并将其分成新行。但是,如果我为此添加 DISABLED 选项,它将禁用滚动条和文本。解决这种情况的最佳方法是什么?我也试过添加

SendDlgItemMessage(ID_STATUS, EM_SETREADONLY, 0, 0);
Run Code Online (Sandbox Code Playgroud)

在预览 UI 以查看这是否会禁用文本编辑之前,但它不会。任何帮助,将不胜感激。

c++ winapi

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

字体真棒图标未显示在 ASP.NET CORE MVC 项目中

我正在开发一个 ASP.NET CORE MVC 应用程序,但在加载字体真棒图标时遇到了问题。这是文件夹布局:在此处输入图片说明

这是我的 _layout.cshtml 的样子:

<environment include="Development">
    <script src="~/lib/jquery/dist/jquery.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
    <link rel="stylesheet" href="~/lib/font-awesome/css/fontawesome.css" />
</environment>
<environment exclude="Development">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
        asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
        asp-fallback-test="window.jQuery"
        crossorigin="anonymous"
        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"
        asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"
        asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
        crossorigin="anonymous"
        integrity="sha384-xrRywqdh3PHs8keKZN+8zzc5TX0GRTLCcmivcbNJWm2rs5C8PRhcEn3czEjhAO9o">
</script>
<link rel="stylesheet" href="~/lib/font-awesome/css/fontawesome.min.css" />
</environment>
<script src="~/js/site.js" asp-append-version="true"></script>

@RenderSection("Scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

这是我尝试使用 fontawesome 图标的方式:

  <span class='input-group date datepicker'>
                    @Html.TextBoxFor(m => m.CandidateDetail.DateOfBirth, new { @id = "DateOfBirth", @class = "form-control" })
                    <span class="input-group-append">
                        <span class="input-group-text"><i class="fas fa-calendar"></i></span>
                    </span>
                </span>
Run Code Online (Sandbox Code Playgroud)

当我启动项目时,我看到的只是一个正方形。我在这里做错了什么?

font-awesome asp.net-core-mvc asp.net-core

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

Serilog ILogger.ForContext 在 XUnit Mock 中抛出 NullReferenceException

尝试使用 Mock 对信号器组件进行单元测试时遇到问题。这是问题发生的地方

 _logger.LogInformation($"Registering a Station with id: {Id}" +
            $" with status: {Status}" +
            $"{(!string.IsNullOrEmpty(CommandId) ? $", with command: {CommandId}" : "")}", 
            LoggingConstants.Component.MessageHub,
            LoggingConstants.Class.Workstation, 
            !string.IsNullOrEmpty(AppointmentId) ? 
                AppointmentId : LoggingConstants.NoAppointmentId,
            LoggingConstants.NoConfirmationNumber);
Run Code Online (Sandbox Code Playgroud)

LogInformation 定义为

logger.ForContext("Component", (object) component, false).ForContext("Class", (object) @class, 
false).ForContext("AppointmentId", (object) appointmentId, false).ForContext("ConfirmationNumber", 
(object) confirmationNumber, false).Information(message);
Run Code Online (Sandbox Code Playgroud)

在 Xunit 单元测试类中,它被用作

public Mock<ILogger> MockLogger { get; set; }
MockLogger = new Mock<ILogger>();
Workstation = new Workstation(MockLogger.Object);
Run Code Online (Sandbox Code Playgroud)

当单元测试运行时,一旦它遇到 _logger.LogInformation() 消息,它就会抛出一个

"System.NullReferenceException : Object reference not set to an instance of an object.
at …
Run Code Online (Sandbox Code Playgroud)

mocking xunit signalr-hub serilog asp.net-core-signalr

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

在ASP.NET MVC 5中多选CheckBoxList

我今天的问题是围绕实现一个复选框列表并在MVC 5中选择该项目。这是我遇到的问题:

EmployeeViewModel viewModel = new EmployeeViewModel { data =  
manager.getEmployeeData() };
return View(viewModel);
Run Code Online (Sandbox Code Playgroud)

我的主视图中有一个下拉列表,为了用数组中的数据填充它,我创建了一个视图模型,然后将其发送到视图中,如下所示:

Public class EmployeeViewModel {
    public MyEmployees[] data {get; set;};
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,问题在于数据数组没有布尔值isSelected属性,但是具有employeeName和Id之类的属性。因此,最终,我的问题是,我将如何实现一个复选框列表,该列表允许多项选择并选择所有员工,并让我知道选中还是未选中哪个员工。我无法使用引导程序或类似的引导程序,因此必须使用HTML帮助器或C#/ ASP.NET等来实现。感谢所有帮助。

编辑:很抱歉,您之前没有对此做清楚的说明,我希望此复选框列表出现在下拉列表中。因此,基本上,在单击下拉菜单后,您会在旁边带有复选框的项目中。

c# asp.net asp.net-mvc razor

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

模拟 Context.ConnectionId 以进行单元测试 Signalr .NetCore 消息中心

我的问题是,当我在 .Net CORE 中对 Signalr 集线器进行单元测试时,获取 context.connection ID 值插入我的方法之一。我的方法在我的测试类中如下所示:


    [Fact]
    public async Task TestWorkstationCreation()
    {
        Mock<IHubCallerClients<IWorkstation>> mockClients = new Mock<IHubCallerClients<IWorkstation>>();
        Mock<IWorkstation> mockClientProxy = new Mock<IWorkstation>();
        mockClients.Setup(clients => clients.All).Returns(mockClientProxy.Object);
        _workstationHub.Clients = mockClients.Object;
        await _workstationHub.RegisterWorkstation("WKS16", "Ready", new Dictionary<string, string> {{"OS", "Windows 10"}, {"Exam", "GRE, TOEFL"}});
        mockClientProxy.Verify(c => c.WorkstationRegistered(It.IsAny<WorkstationDataModel>(), It.IsAny<string>()), Times.AtLeastOnce);
    }
Run Code Online (Sandbox Code Playgroud)

在我的集线器类中,这是方法:

    public async Task RegisterWorkstation(string id, string status, Dictionary<string, string> capabilities)
    {
        _logger.LogInformation(
            "Registering a Workstation with id: {id}, status: {status}, and capabilities: {capabilities}",
            id, status, string.Join(",", capabilities));
        var workstationAdded = …
Run Code Online (Sandbox Code Playgroud)

xunit signalr .net-core asp.net-core asp.net-core-signalr

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