我在表单上的相同位置使用不同的控件集.默认情况下,所有都是visible = false,然后当用户在组合框下拉控件中选择特定值时,控件的某些子集将设置为可见.
从用户的角度来看,这很有效,因为它们只能看到所需的控件.
但是,由于控件占用窗体上的相同位置,因此很难在Visual Studio设计视图中管理这些控件.
有没有办法在Visual Studio中对这些重叠控件的集合进行分组,以便我可以快速轻松地选择整个控件子集?有没有办法在设计视图中隐藏某些控件?现在,在开发时,所有东西都堆叠在一起,因此难以管理这些控件.
假装我有2台显示器.主显示器只是普通的PC桌面显示器,另一个是触摸屏.当我加载程序(WinForm,WPF,...)时,它将加载在主监视器上.
问:如果我将程序替换为触摸屏,我怎么知道当前的屏幕/显示器/显示器是触摸屏还是启用了触摸屏?
换句话说,如何检测当前屏幕/显示器/监视器及其设置?
到目前为止,我使用的是Screen类(Windows.Forms),TabletClass(Windows.Input)和DLLImportUser32.dll(GetSystemMetrics()).它们中的任何一个或它们的组合都不起作用.
我希望找到像:Monitor.Current.IsTouch或者Display.CurrentDisplay.TouchEnabled
几年前,在.NET 4发布之前,代码合同遍布整个博客圈,.NET 4中包含的运行时组件以及更昂贵的Visual Studio 2010版本中提供的静态检查程序.
代码合同的嗡嗡声似乎已经消失,人们是否在生产中使用它?微软研究院还在做更多的工作吗?
我正在使用XSD在C#中定义我的DTO类型.我正在使用XSD.exe来生成XSD的类.
我有一个定义地址类型的Common.xsd,我想在多个类中使用它:
<xs:complexType name="Address">
<xs:sequence>
<xs:element name="Street1" type="xs:string"/>
<xs:element name="Street2" type="xs:string"/>
<xs:element name="City" type="xs:string"/>
<xs:element name="State" type="xs:string"/>
<xs:element name="Zip" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Address" type="mhm:Address"/>
Run Code Online (Sandbox Code Playgroud)
我在XSD公司中引用它:
<xs:include schemaLocation=".\Common.xsd"/>
<xs:complexType name="Company">
<xs:sequence>
<xs:element name="AdmCode" type="xs:string"/>
<xs:element name="CompanyCode" type="xs:string"/>
<xs:element name="Name" type="xs:string"/>
<xs:element ref="mhm:Address"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Company" type="mhm:Company"/>
Run Code Online (Sandbox Code Playgroud)
员工XSD:
<xs:include schemaLocation=".\Common.xsd"/>
<xs:complexType name="Employee">
<xs:sequence>
<xs:element name="EmployeeNumber" type="xs:int"/>
<xs:element name="FirstName" type="xs:string"/>
<xs:element name="LastName" type="xs:string"/>
<xs:element name="Address" type="mhm:Address"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Employee" type="mhm:Employee"/>
Run Code Online (Sandbox Code Playgroud)
我使用这个命令行生成类:
xsd .\XSD\Common.xsd /c /o:. /n:"DomainModel"
xsd .\XSD\Employee.xsd /c /o:. …Run Code Online (Sandbox Code Playgroud) 我SaveFileDialog用来选择我想要保存文件的路径.我设置InitialDirectory为某个文件夹,但我想将保存位置限制为该文件夹或该文件夹的子文件夹.这可能吗?
SaveFileDialog dialog = new SaveFileDialog();
dialog.InitialDirectory = "SomePath"//this is the path that I want to be root folder
Run Code Online (Sandbox Code Playgroud) 当用户登录时,然后进入登录页面.如果他再次尝试登录,则会出现Anti forgery Error.
防伪令牌无法解密.如果此应用程序由Web场或群集托管,请确保所有计算机都运行相同版本的ASP.NET网页,并且配置指定显式加密和验证密钥.AutoGenerate不能在群集中使用.
我得到的另一种错误是:
提供的防伪令牌适用于与当前用户不同的基于声明的用户.
如何处理这种防伪造错误?
我有一个.NET服务,它处理后台线程上的队列,并从队列中的项目以非常高的速率发送大量的小电子邮件(如果可能的话,每秒100条消息).目前,我使用,SmtpClient.Send()但我担心它可能会妨碍性能.
每次调用Send()都会经历一个完整的循环,打开套接字,执行SMTP会话(HELO,MAIL FROM,RCPT TO,DATA)并关闭套接字.在伪代码中:
for each message {
open socket
send HELO
send MAIL FROM
send RCPT TO
send DATA
send QUIT
close socket
}
Run Code Online (Sandbox Code Playgroud)
(编辑:这句话SmtpClient.Send()实际上是假的,正如我在答案中解释的那样.)
我认为以下伪代码将更加优化:
open socket
send HELO
for each message {
send MAIL FROM
send RCPT TO
send DATA
}
send QUIT
close socket
Run Code Online (Sandbox Code Playgroud)
我是否应该关注SmtpClient.Send()高速发送电子邮件时的表现?我有哪些优化性能的选择?
我正在尝试使用Reactive Extensions for .NET重写一些代码,但我需要一些关于如何实现目标的指导.
我有一个类在低级库中封装了一些异步行为.想想要读取或写入网络的东西.当类启动时,它将尝试连接到环境,并且当成功时,它将通过从工作线程调用来发回信号.
我想将此异步行为转换为同步调用,并在下面创建了一个极为简化的示例,说明如何实现:
ManualResetEvent readyEvent = new ManualResetEvent(false);
public void Start(TimeSpan timeout) {
// Simulate a background process
ThreadPool.QueueUserWorkItem(_ => AsyncStart(TimeSpan.FromSeconds(1)));
// Wait for startup to complete.
if (!this.readyEvent.WaitOne(timeout))
throw new TimeoutException();
}
void AsyncStart(TimeSpan delay) {
Thread.Sleep(delay); // Simulate startup delay.
this.readyEvent.Set();
}
Run Code Online (Sandbox Code Playgroud)
AsyncStart在工作线程上运行只是模拟库的异步行为的一种方式,并不是我的实际代码的一部分,其中低级库提供线程并在回调上调用我的代码.
请注意,该Start方法将TimeoutException在超时间隔内抛出if start.
我想重写此代码以使用Rx.这是我的第一次尝试:
Subject<Unit> readySubject = new Subject<Unit>();
public void Start(TimeSpan timeout) {
ThreadPool.QueueUserWorkItem(_ => AsyncStart(TimeSpan.FromSeconds(1)));
// Point A - see below
this.readySubject.Timeout(timeout).First();
}
void AsyncStart(TimeSpan delay) …Run Code Online (Sandbox Code Playgroud) 我正在用c ++编写一个类,它支持任何类型的变量来帮助我完成未来的项目.问题是,当我尝试为void*变量赋值时,我得到错误:void*不是指向对象的指针类型.这是代码:
int main (void) {
void* a;
int x;
a = malloc(sizeof(int));
x = 120;
((int)(*a)) = x;
printf("%d",((int)*a));
free(a);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我看到它就像我试图在为a保留的内存块中分配x的值.我希望存储在x中的值存储在a的内存块中.可以帮我吗?
我试图使用.net Observable类实现一个简单的Observer模式.我的代码看起来像这样:
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "FirstName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnFirstNameChanged(search.EventArgs));
Observable.FromEventPattern<PropertyChangedEventArgs>(
Instance.User,
"PropertyChanged")
.Where(e => e.EventArgs.PropertyName == "LastName")
.ObserveOn(Scheduler.ThreadPool)
.Subscribe(search => OnLastNameChanged(search.EventArgs));
Run Code Online (Sandbox Code Playgroud)
我希望观察者在后台线程上运行,但是我希望它们都在相同的后台线程上运行(对于我们真正的实现,将每个侦听器放在不同的线程上会非常复杂).
即我希望所有的OnXXXChanged逻辑都在UI线程以外的线程上执行,但是Observing我想确保它们在同一个线程上以正确的顺序运行,而不是在整个线程池上运行.
如何修改上述内容?
另外,在某种程度上相关的说明,是否有任何好的示例代码示例使用Observable该类来实现此模式?