小编Mar*_*ers的帖子

在Windows窗体中嵌入DOS控制台

是否可以在Windows窗体或C#2.0中的用户控件中嵌入DOS控制台?

我们有一个我的Windows应用程序必须与之交互的遗留DOS产品,并且已经请求遗留产品的实例应该在Windows应用程序中运行.

目前,我正在使用user32.dll找到运行DOS产品的窗口,最小化然后最大化窗口,并在窗口中键入字符.这不是解决问题的非常好的解决方案,因为这意味着我的应用程序必须将窗口名称存储在应用程序设置中,并要求用户在使用交互功能之前返回到DOS应用程序的正确页面.

编辑:更多信息

遗留应用程序需要对用户可见,但不能在单独的窗口中显示.

我已经尝试了TimothyP的答案并且效果很好,但它是否可以实现相同的功能,但DOS窗口可视化地嵌入在窗体或用户控件中,而不是弹出它自己的窗口?优选地,以ShowDialog()方式使得用户不能与应用程序交互,他们处于"传统模式",可以这么说.

c# dos winforms c#-2.0

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

在解析动态对象时,C#是否为var选择了错误的类型?

我使用以下代码将一些Json转换为动态对象.当我在动态类型的属性上使用DateTime.Parse时,我希望var猜测它的类型是DateTime ......相反,它保持动态.这不可能是对的,可以吗?

完整的例子如下.

var settings = new JavaScriptSerializer().Deserialize<dynamic>(json);

var startDate = DateTime.Parse(settings.startDate);
var endDate = DateTime.Parse(settings.endDate);
var userId = int.Parse(settings.userId);
Run Code Online (Sandbox Code Playgroud)

startDate,endDate和userId都是动态的,这意味着我不能在以后的Lambda表达式中使用它们.显然,我可以用以下代码修复代码:

DateTime startDate = DateTime.Parse(settings.startDate);
DateTime endDate = DateTime.Parse(settings.endDate);
int userId = int.Parse(settings.userId);
Run Code Online (Sandbox Code Playgroud)

..但似乎编译器正在做出"糟糕的猜测".任何人都可以向我解释这个吗?

谢谢

c# var dynamic c#-4.0

13
推荐指数
1
解决办法
1155
查看次数

正则表达式以检测字符串中的重复

是否可以使用正则表达式检测重复的数字模式?

因此,例如,如果我有以下字符串"034503450345",是否可以匹配重复序列0345?我有一种感觉,这超出了正则表达式的范围,但我想我还是会问这里,看看我是否错过了什么.

c# regex

8
推荐指数
3
解决办法
1万
查看次数

NHibernate使用错误的连接生成SQL

我有一个NHibernate Linq查询,它没有按我的预期工作.

问题似乎来自于在where子句中使用左连接表中的可空int列.这导致连接充当内连接.

var list = this.WorkflowDiaryManager.WorkflowActionRepository.All
    .Fetch(x => x.CaseView)
    .Fetch(x => x.WorkflowActionType)
    .ThenFetchMany(x => x.WorkflowActionPriorityList)
    .Where(x => x.AssignedUser.Id == userId || x.CaseView.MooseUserId == userId)
Run Code Online (Sandbox Code Playgroud)

由此产生的SQL看起来像(从加入开始 - 您不需要查看所有选择)

from Kctc.WorkflowAction workflowac0_ 
left outer join Kctc.WorkflowCaseView workflowca1_ on workflowac0_.CaseId=workflowca1_.CaseId 
left outer join Kctc.WorkflowActionType workflowac2_ on workflowac0_.WorkflowActionTypeId=workflowac2_.WorkflowActionTypeId 
left outer join Kctc.WorkflowActionPriority workflowac3_ on workflowac2_.WorkflowActionTypeId=workflowac3_.WorkflowActionTypeId
,Kctc.WorkflowCaseView workflowca4_ 
where workflowac0_.CaseId=workflowca4_.CaseId 
and (workflowac0_.AssignedUser=@p0 or workflowca4_.[MooseUserId]=@p1);
@p0 = 1087 [Type: Int32 (0)],
@p1 = 1087 [Type: Int32 (0)]
Run Code Online (Sandbox Code Playgroud)

因此导致问题的部分是上面代码段的第5行.正如您所看到的,NHibernate正在尝试在WorkflowCaseView View上进行"老派"连接.这会导致查询排除WorkflowAction表中没有CaseId的其他有效操作.

任何人都可以解释为什么NHibernate正在编写这个SQL,以及我如何鼓励它产生更好的查询?

谢谢!

WorkflowActionMap中的重要位

        Table("Kctc.WorkflowAction");
        Id(x => …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate-mapping fluent-nhibernate linq-to-nhibernate

7
推荐指数
1
解决办法
750
查看次数

有没有办法在nodejs pdfkit中以粗体显示一段文本?

Node-pdfkit http://pdfkit.org/index.html

我使用nodejs pdfkit生成pdf.我希望能够在一行中加粗斜体.看起来pdfkit不支持这个,所以我想知道是否有人做过类似的事情?

真正有用的是调用doc.text函数,但让文档保留它的x位置,以便我可以执行以下操作.

doc.text('some words then ');
doc.font('Helvetica-Oblique');
doc.text('italic');
doc.font('Helvetica');
doc.text(' then the remaining words');
Run Code Online (Sandbox Code Playgroud)

并看到输出:

有些话则斜体那么剩下的话.

现在它每个文本函数输出一行.

有人知道这样做的好方法吗?

pdf pdf-generation node.js

7
推荐指数
2
解决办法
5147
查看次数

捕获UserControl中的KeyDown事件

我有一个带有几个子控件的用户控件.我需要用户界面来响应按键,所以我决定将处理代码放在MainControl_KeyDown事件中.但是,当我在我的应用程序中按下某个键时,此事件不会触发.

我通过一个依赖于使用Windows API的搜索引擎找到了一个解决方案,我希望避免使用它,因为对于.NET框架正确支持的功能而言似乎有些过分.

.net winforms c#-2.0

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