所以我的困境来自于使用 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 以查看这是否会禁用文本编辑之前,但它不会。任何帮助,将不胜感激。
我正在开发一个 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)
当我启动项目时,我看到的只是一个正方形。我在这里做错了什么?
尝试使用 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) 我今天的问题是围绕实现一个复选框列表并在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等来实现。感谢所有帮助。
编辑:很抱歉,您之前没有对此做清楚的说明,我希望此复选框列表出现在下拉列表中。因此,基本上,在单击下拉菜单后,您会在旁边带有复选框的项目中。
我的问题是,当我在 .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) asp.net-core ×2
xunit ×2
.net-core ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
c++ ×1
font-awesome ×1
mocking ×1
razor ×1
serilog ×1
signalr ×1
signalr-hub ×1
winapi ×1