在属性网格中创建可扩展组?

情景 我已经对ListBox细分,并且在我的控件启用 , 禁用或处于ReadOnly模式时添加了颜色属性: 题 在C#或VB.Net中,我需要做什么才能将属性网格中的属性组织成具有此结构的可扩展组?: [+] State Enabled [+] Selected Item · BackColor · ForeColor [+] Unselected Item · BackColor · ForeColor 这是一个从Krypton lib用户控件中获取的可视示例,它演示了我想要模仿的内容: UPDATE 我认为在这个url中解释了所有关于财产网格的必要条件: http://www.codeproject.com/Articles/2764/Using-PropertyGrid-Part-I 但它专注于使用具有Load事件的表单来执行它,我仍然无法理解如何在我的用户控件中实现该示例,因为如果我创建一个子类来自定义属性网格,就像在该示例中那样我就可以不能访问我的控件的基类。 我的代码有一个像这样的简单结构: Public Class ElektroListBox : Inherits ListBox Public Property StateEnabledItemSelectedBackColor As Color Get Return Me.stateEnabledItemSelectedBackColor1 End Get Set(ByVal value As Color) Me.stateEnabledItemSelectedBackColor1 = value Me.Invalidate(invalidateChildren:=False) End […]

如果我使用异步,不应该使用更少的线程数?

我的理解是,如果我使用异步,线程会发出Web请求并继续前进。 当响应回来时,另一个线程从那里接收它。 因此,有较少数量的捆绑线程处于空闲状态。 这是不是意味着最大活线程数会下降? 但在下面的示例中,不使用异步的代码最终使用较少数量的线程。 有人可以解释为什么吗? 没有异步的代码(使用较小的线程): using System; using System.Diagnostics; using System.IO; using System.Net; using System.Threading; namespace NoAsync { internal class Program { private const int totalCalls = 100; private static void Main(string[] args) { for (int i = 1; i <= totalCalls; i++) { ThreadPool.QueueUserWorkItem(GoogleSearch, i); } Thread.Sleep(100000); } private static void GoogleSearch(object […]

csproj文件中的多个提示路径来自文本文件变量

上下文:在我们的应用程序中有两个独立的dll,它们是为不同类型的硬件配置的变量存储库。这些dll具有相同的名称并从我们的应用程序中引用,现在每次如果我们想要测试我们必须复制的不同类型的硬件相关的dll到应用程序运行的位置。 我正在寻找一种解决方法。 参考文献:我见过以下post, 1) .csproj程序集的多个提示路径 2) https://whathecode.wordpress.com/2012/10/07/conditional-project-or-library-reference-in-visual-studio/ 问题:我可以在文本文件中声明一个变量,如 type1 并在我的csproj文件中导入该文本文件并为我的应用程序分配适当的引用吗? 任何帮助.. 以下是复制我们项目的测试应用程序。 SignalPool1,SignalPool2具有相同的类名,并且是我们项目的两个不同位置可用的两种不同硬件配置的存储库。 如果我们想测试硬件1,我们将删除当前引用并添加相关信号池的引用,这同样适用于hardware2。 现在为了避免这种手动工作,我想自动化这个过程要么在XML上声明一个变量并访问csproj文件中的变量来决定在编译/运行时访问哪个变量。 目前为了避免这个问题,我有一个单独的exe,它读取xml并决定将它们复制到一个公共文件夹中。这个exe将在我们项目中的prebuild事件时被调用。 //信号池1文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SignalPool { public abstract class SignalPool { public abstract string PreExec(); public abstract string PostExec(); public abstract string VnVExec(); public static string HWVar1 = “HWVar1”; public static string HWVar2 […]

Google Checkout回复的C#示例?

可能重复: C#和Google Checkout – 从服务器获取回复? 很抱歉重新发布,但这个问题对我来说似乎有点“白鲸”。 我找不到任何关于如何处理来自Google Checkout的交易回复的C#示例: 在使用C#和GCheckout API时,是否有关于如何从Google Checkout事务中获取响应的教程? 我能找到的所有示例都是针对API的先前版本而不是当前版本(2.5)。 更具体地说,我想看一个谷歌将在没有 HTTPS连接的情况下发回给我的回复的示例回复。 我知道这是最小的数据,但我仍然希望看到它的一个例子,看看其他人如何解析它。

如何在UserControl中创建部分客户区?

在我之前的问题中,我已经解决了如何创建容器依赖控件。 现在,我在控制中遇到问题。 控制设计有点混乱。 设计看起来像这样。 在此设计中,开发人员无法在页面控件之外添加控件。 PageControl将自动添加到客户区。 我想阻止用户在PageControl之外添加控件。 我不会再混淆了。 所以,我的问题是我该怎么做? 您可以在我之前的问题中看到课程声明 如果您有任何其他想法,请建议我。 更新: 控制应该是这样的。 但是,在分配非客户区域后,放置的控件进入客户区域。 我想阻止用户在该部分添加控件。

二维arrays插值

我目前正在使用c#进行3D游戏。 我有一个名为data二维数组,其中我获得了x和y值的z值。 例如: data[x,y] = z; data[1,2] = 4; data[2,4] = 5; 我的问题是这是非常模糊的,我还需要计算(插值)值,例如x = 1.5和y = 2.5。 如何获得此值并且是否有可用的function? 谢谢

401订阅使用Exchange服务和OAuth的推送通知时未经授权

我正在尝试使用oauth访问EWS托管API(订阅推送通知),如下所示: var authenticationTask = await authenticationContext.AcquireTokenAsync(“https://outlook.office365.com”, new ClientCredential(clientID, clientSecret)); string targetSmtp = “user123@mydomain.onmicrosoft.com”; ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2013); exchangeService.Url = someURL; exchangeService.TraceEnabled = true; exchangeService.TraceFlags = TraceFlags.All; exchangeService.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, “user123@mydomain.onmicrosoft.com”); exchangeService.HttpHeaders.Add(“X-AnchorMailbox”, targetSmtp); exchangeService.Credentials = new OAuthCredentials(authenticationTask.AccessToken); PushSubscription subscription = exchangeService.SubscribeToPushNotifications( new[] { someFolder }, new Uri(postBackUrl), 15, null, EventType.NewMail, EventType.Created, EventType.Deleted, EventType.Modified, EventType.Moved, […]

如何从控制器方法返回图像?

我想使用TagLib在mp3文件中使用mp3 albumart。 我正在使用该代码,它提供了System.Drawing.Bitmap 。 如何在网页中显示。 我正在使用MVC。 var file12 = TagLib.File.Create(file); if (file12.Tag.Pictures.Length >= 1) { var bin = (byte[])(file12.Tag.Pictures[0].Data.Data); if (bin.Length > 0) { Images = System.Drawing.Image.FromStream(new MemoryStream(bin)).GetThumbnailImage(200, 200, null, IntPtr.Zero); album = file12.Tag.Album; } } 请帮我

是否可以使用SSH.NET从单个登录会话执行多个SSH命令?

我正在使用带有SSH.NET的C#,并且能够使客户端SSH连接正常工作,以便跨SSH执行命令。 我可以连接到虚拟机管理程序VM上的Linux安装,没有任何问题,读回StdOut和StdErr等。 但是,每个命令都像一个全新的会话 – 它始终从/home/user ,即使您使用最后一个命令从另一个目录完成。 您可以使用分号将多个命令串起来: pwd; cd ..; pwd /home/user /home 但是如果我执行: pwd /home/user 我回到了该用户的主目录。 我没有断开和关闭命令之间的会话。 以下是连续几个命令的示例代码,使用路径中的更改来说明问题: public void MultiCommandTest() { string output1, output2; var host = Config.SshHostName; var port = Config.SshHostPort; var user = Config.SshUsername; var pass = Config.SshPassword; var auth = new PasswordAuthenticationMethod(user, pass); var info = new ConnectionInfo(host,port,user,auth); using (var […]

是否有任何集合类或特殊数据类型支持.NET 3.5中超过2 ^ 31项?

我目前正在使用VS 2008 64位版本,带有SP1的3.5框架。 但是,像List这样的集合类似乎可以包含2 ^ 31(或int的最大值)元素的限制。 有谁知道是否有任何真正的64位集合可以处理容器中超过2 ^ 31个元素? 如果不是VS 2008,那么VS 2010怎么样? 那里有任何第三方collections品吗?