我有一个控制TableLayoutPanel网格PictureBox.我正在尝试找到一种快捷方式将它们全部更改为Label控件,而不是手动删除每个控件并在每个单元格中放置新控件.
我以为我可以进入设计器代码并使用Label查找/替换PictureBox,但现在我得到了一个
"对象与目标类型不匹配"
Visual Studio的错误列表中的错误.我现在也无法查看设计器页面.这是不允许的?如果允许,那么正确的方法是什么?
我有一个标准的Windows窗体应用程序,我需要一个解决方案来打开Windows窗体应用程序设置中的控制台.我想出了这个解决方案:
Public Class Win32
<DllImport("kernel32.dll")>
Public Shared Function AllocConsole() As Boolean
End Function
<DllImport("kernel32.dll")>
Public Shared Function FreeConsole() As Boolean
End Function
' ...
Win32.AllocConsole()
Console.WriteLine("Test")
Run Code Online (Sandbox Code Playgroud)
使用上面的P/Invoke函数,我可以打开一个控制台,而我的应用程序不是"控制台应用程序".
我现在遇到的问题是,当我关闭控制台窗口时,它退出我的程序并关闭所有窗体和Windows.有没有办法阻止用户关闭控制台窗口,或者在控制台窗口关闭时阻止程序退出?(我可以使用以编程方式关闭控制台Win32.FreeConsole().)
我正在Web API 2.2上构建OData 3服务.
该服务正确返回我的实体的元数据,但406 Not Available在查询其中一个实际实体时返回.我做了很多研究(我目前正在学习几个教程),但我还没有找到任何实际工作的东西.
这是我的WebApiConfig:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using System.Web.OData.Builder;
using System.Web.OData.Extensions;
namespace MyProject
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<MarvelCharacter>("MarvelCharacters");
config.MapODataServiceRoute(
routeName: "Marvel",
routePrefix: "dude",
model: builder.GetEdmModel());
}
}
}
Run Code Online (Sandbox Code Playgroud)
和我的控制器(不完整,但你明白了):
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.OData;
using System.Web.Http.OData.Query;
using Microsoft.Data.OData;
using MyProject;
namespace MyProject.Controllers
{
public class …Run Code Online (Sandbox Code Playgroud) 在IE11中运行时,以下示例将向itemwrapper元素的底部添加空格.在开发控制台中检查时,此空间不会归因于边距,填充或边框.测量子元素的高度似乎是一个问题,因为如果它们被赋予固定的高度,那么空间就会消失(单击"固定高度元素").错误的化合物基于自动调整大小的子元素的数量...越多,空间越大(单击"添加元素")
这在Chrome,Firefox或Edge中不会发生......它仅限于IE11(我认为是IE10).
这是一个有记录的错误吗?有解决方法吗?
window.addelements = function(){
$('<div class="item" style="height: auto;"><div>Account Name</div><div><input></div></div>').appendTo($('#itemwrapper'));
}
window.removeelements = function(){
$('.item').last().detach();
}
window.autoelements = function(){
$('.item').css('height', 'auto');
}
window.fixedelements = function(){
$('.item').css('height', '50px');
}Run Code Online (Sandbox Code Playgroud)
#flexwrapper {
display: flex;
flex-direction: column;
flex:1 1 100px;
justify-content:
flex-start;
border: 4px red solid;
}
#itemwrapper {
border: 4px green dashed;
}
.item {
border: 4px blue solid;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="addelements()">add elements</button>
<button onclick="removeelements()">remove elements</button>
<button onclick="autoelements()">auto height elements</button>
<button onclick="fixedelements()">fixed height elements</button>
<div id="flexwrapper">
<div …Run Code Online (Sandbox Code Playgroud)我有一个字符串,其中包含一个自定义表达式,我必须解析和评估:
例如:
(FUNCTION_A(5,4,5) UNION FUNCTION_B(3,3))
INTERSECT (FUNCTION_C(5,4,5) UNION FUNCTION_D(3,3))
Run Code Online (Sandbox Code Playgroud)
FUNCTION_X表示在C#中实现并返回IList的函数.UNION或INTERSECT是自定义函数,应该应用于从这些函数返回的列表.
联盟和交叉是通过实现的Enumerable.Intersect/Enumerable.Union.
如何以优雅和可扩展的方式实现解析和评估?
上下文:我有一个HTML页面,它使用HTML5数据属性.我的一些CSS样式使用属性选择器根据这些自定义属性的值设置元素样式.
问题:当我使用JavaScript更新数据属性的值时,Chrome会通过重新设置受影响的元素来正确响应,但IE8(我需要支持)不会立即响应.让IE8更新样式的唯一方法是通过其他方式直接摆弄CSS样式(例如删除或修改class属性).
例:
<html>
<head>
<style type="text/css">
.Test[data-foo="bar"]{ background-color: Green; }
.Test[data-foo="baz"]{ background-color: Red; }
</style>
<script src="scripts/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">
function change(div) { $(div).attr("data-foo", "baz"); }
function toggleTest() { $("DIV").toggleClass("Test"); }
</script>
</head>
<body>
<div data-foo="bar" onclick="change(this);" class="Test">Testing</div>
<div data-foo="bar" onclick="change(this);" class="Test">Testing</div>
<input type="button" onclick="toggleTest()" value="Toggle Class" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在Chrome中,您可以单击Test1和Test2栏,它们会立即变为红色.在IE8中,您必须单击该栏,然后单击该按钮两次(一次删除该类,再次将其还原).
问题:解决方法是什么?显然我已经确定了一个(添加/删除类),但它很难看.是否有一种优雅,不引人注目的方式迫使IE8重新评估元素的风格而不会忽略元素的属性?
我有以下TextBox:
<TextBox Text="{Binding SearchString,
UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
绑定到以下属性:
private string _searchString;
public string SearchString
{
get
{
return _searchString;
}
set
{
value = Regex.Replace(value, "[^0-9]", string.Empty);
_searchString = value;
DoNotifyPropertyChanged("SearchString");
}
}
Run Code Online (Sandbox Code Playgroud)
该类继承自实现的基类 INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
protected void DoNotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
Run Code Online (Sandbox Code Playgroud)
我只想要一个快速而肮脏的方法来禁止非整数文本框的非数字字符(我知道它不完整,只是为了演示).我不想仅仅通知有非法文本或任何内容,我想立即丢弃所有不允许输入的字符.
但是,TextBox表现得很奇怪.我仍然可以输入我想要的任何文字,它将显示为输入,例如"1aaa".即使在此示例中已将属性正确清除为"1",文本框仍显示"1aaa".只有当我输入一个会导致_searchString更改的实际数字时,它才会更新显示的文本,例如当我有"1aaa2"时它会正确地更新为"12".这是怎么回事?
我最近继承了一个看起来像这样的SAS程序:
%MACRO ComplicatedStuff( GroupId= );
%LET FileId = %SYSFUNC( OPEN( Work.BigDataSet ) );
%PUT 'Doing something really difficult with ' &GroupId.;
%LET CloseRC = %SYSFUNC( CLOSE( &FileId. ) );
%MEND ComplicatedStuff;
%ComplicatedStuff(GroupId=ABC1);
%ComplicatedStuff(GroupId=DEF2);
%ComplicatedStuff(GroupId=3GHI);
%ComplicatedStuff(GroupId=J4KI);
Run Code Online (Sandbox Code Playgroud)
作为一个多方面的程序员,我看着这个并且想"我肯定能让这个变得更有活力".果然,我能够使用以下方法开发我认为简单的解决方案CALL EXECUTE:
DATA Work.IDs;
INPUT ID $4.
;
DATALINES;
ABC1
DEF2
3GHI
J4KI
RUN;
DATA Work.CommandDebug;
SET Work.IDs;
Command = CATS(
'%ComplicatedStuff(GroupId=', ID, ');'
);
CALL EXECUTE( Command );
RUN;
Run Code Online (Sandbox Code Playgroud)
我很满意这个解决方案,直到将ComplicatedStuff生成的文件FTP到另一台服务器.我们的SAS服务器在Unix上运行,SAS管理员为我们创建了一个有用的小宏来调用named %sas_sftp(因为,我被告知,x代码变得非常难看).不幸的是,我无法发布%sas_sftp代码 - 它属于我的公司,我不认为他们想要它.
我尝试像调用%sas_sftp宏一样调用%ComplicatedStuff …
我有两个集合(它们恰好是数组,但我认为它并不重要):L和R.它们都已排序,现在我想比较它们.我想最终得到两个集合:每个输入数组一个包含不在另一个中的项目.
我可以从第一个项目中L搜索R,然后搜索,如果没有匹配,则将其添加到我的"唯一"集合(Lu).但这是非常低效的,我期待在不久的将来有一些非常大的集合进行处理.
我虽然可能"玩跳房子":
第1步:获取两个列表,L然后R比较每个列表的头部(l :: L和r :: R):
分支1:如果l< r,再加入l到Lu和递归,传递L和r :: R
分支2:如果l> r,再加入r到Ru和递归,传递l :: L和R
分支3:if l= r,然后递归,传入L和R
第2步:返回Lu和Ru
我可以编写这个函数,但在我努力之前,我想知道一个函数是否已经存在,它可以为我做这个.这似乎是一个不常见的场景,我总是宁愿使用现有的解决方案来推动我自己.
(另外,如果这个算法有一个更易识别的名称,我想知道它叫什么.)
我如何await在async函数调用call或apply用Babel?
下面是一个示例,其中getOrders是类的async方法Service:
class Service() {
async getOrders(arg1, arg2, arg3) {
return await this.anotherService.getOrders(arg1, arg2, arg3);
}
}
let service = new Service();
// ...
// Babel doesn't compile
// let stream = await service.getOrders.call(this, arg1, arg2, arg3);
// producing SyntaxError: Unexpected token for await
let stream = service.getOrders.call(this, arg1, arg2, arg3);
stream.pipe(res); // obviously not working without await in the prev line
Run Code Online (Sandbox Code Playgroud)
更新/解决方案
问题在于 …