小编Sim*_*mon的帖子

是否可以在DataGridView中显示选择边框而不是背景颜色?

我的DGV根据业务逻辑将行BackColors设置为各种颜色.当用户选择该行时,颜色变为所选择的行BackColor,从而模糊了预设颜色.我想在选择行时保留原始颜色,并指示选择行(可能)围绕所选行的粗体边框.这可能吗?我有一个简单的替代方案吗?

编辑 为了说清楚,这是一个WinForms应用程序.

.net vb.net datagridview winforms

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

防止组合掉落

是否有一种简单的方法来禁用组合框的下拉部分?我想在某些情况下阻止用户查看下拉部分中的项目.

编辑

感谢所有回复这么快的人!

我已经考虑过选择将文本框或标签放在与组合框相同的位置,然后根据需要隐藏组合框,但是基于复杂性驳回了这个想法(表单上有很多组合) .我也查看了简单模式,但这删除了组合的下拉按钮部分.我想我真正想做的是禁用组合,但看起来它没有被禁用,仍然允许用户选择显示的数据(例如复制和粘贴操作).

.net winforms

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

如何根据列表成员的属性拆分通用List(T)?

我有一个通用的List(Foo),它包含了Type Foo的n个对象.Foo的一个属性是PropertyA.PropertyA可以是ValueA,ValueB或ValueC之一.有没有一种简单的方法可以将它分成三个单独的列表,一个用于ValueA,一个用于ValueB,一个用于ValueC?

我可以编写一些循环原始列表的代码,并根据属性值将每个项目添加到新列表中,但这似乎不是很容易维护(如果我突然得到一个ValueD,那该怎么办?)

**编辑.我应该提到我正在使用该框架的2.0版本.

.net vb.net generics .net-2.0

3
推荐指数
3
解决办法
2230
查看次数

在.net 4.0中并行化Web爬虫的最佳实践

我需要通过代理下载很多页面.构建多线程Web爬网程序的最佳实践是什么?

是Parallel.For\Foreach是否足够好还是对于繁重的CPU任务更好?

您对以下代码怎么说?

var multyProxy = new MultyProxy();

   multyProxy.LoadProxyList();


   Task[] taskArray = new Task[1000];

        for(int i = 0; i < taskArray.Length; i++)
        {
            taskArray[i] = new Task( (obj) =>
                {                                                             
                       multyProxy.GetPage((string)obj);
                },

            (object)"http://google.com"
            );
            taskArray[i].Start();
        }


   Task.WaitAll(taskArray);
Run Code Online (Sandbox Code Playgroud)

它的工作非常糟糕.这很慢,我不知道为什么.

这段代码也很糟糕.

 System.Threading.Tasks.Parallel.For(0,1000, new System.Threading.Tasks.ParallelOptions(){MaxDegreeOfParallelism=30},loop =>
            {
                 multyProxy.GetPage("http://google.com");
            }
            );
Run Code Online (Sandbox Code Playgroud)

我认为我做错了什么.

当我开始我的脚本时,它只使用2%-4%的网络.

c# web-crawler

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

按类型访问ServiceStack requestDto对象

我正在使用ServiceStack请求过滤器,我想检查requestDTO参数的一个属性.此参数在运行时强类型,但在编译时是一个通用对象.

过滤器将用于多个服务调用,因此requestDTO类型将根据已调用的内容而更改.因此我无法对其进行特定演员表演.但是,无论类型如何,requestDTO对象都将始终具有名为"AppID"的字符串属性.这是我希望访问的属性.

这是我的代码(目前没有编译):

 public override void Execute(ServiceStack.ServiceHost.IHttpRequest req, ServiceStack.ServiceHost.IHttpResponse res, object requestDto)
        {
            //Check only for non-local requests
            if (!req.IsLocal)
            {                
                var app = this._appIDs.Apps.Where(x => x.ID == requestDto.AppID).FirstOrDefault();

                var errResponse = DtoUtils.CreateErrorResponse("401", "Unauthorised", null);
                var contentType = req.ResponseContentType;
                res.WriteToResponse(req, errResponse);
                res.EndRequest(); //stops further execution of this request
                return;
            }
        }
Run Code Online (Sandbox Code Playgroud)

这行不编译:

 var app = this._appIDs.Apps.Where(x => x.ID == requestDto.AppID).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

我是否需要在这里处理反射以访问我的对象或者是否有一些内置于ServiceStack本身的方法?

c# servicestack

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

是否可以在VB.NET中实例化接口的新实例

让我解释.我已经定义了一个名为IEmployee的接口(ID,FirstName和Surname属性),但我还没有在任何类中实现该接口.

我想做的是:

Dim User as New IEmployee
User.ID = 1
User.FirstName = ""
User.Surname = ""

Call SomeFunction (User)
Run Code Online (Sandbox Code Playgroud)

VB.NET编译器似乎不喜欢这个.

编辑**谢谢大家,所有好点都做得很好!我将实例化一个具体的类.我只想尝试捷径:)

.net vb.net

2
推荐指数
1
解决办法
5026
查看次数

检查字符串是否可以解析为int数组的最佳方法是什么?

我需要确定是否可以将字符串解析为int数组.字符串可以是格式

"124,456,789,0"

如果它可以转换成如此:

int[] Ids = SearchTerm.Split(',').Select(int.Parse).ToArray();
Run Code Online (Sandbox Code Playgroud)

但是字符串也可能是这样的:

"这是一个字符串,非常好."

在这种情况下,解析失败.

根据字符串是否包含逗号字符(假设只有类似数组的字符串将包含此字符),逻辑当前分为两个方向,但此逻辑现在存在缺陷,并且逗号字符现在出现在其他字符串中.

我可以在它周围放一个Try..Catch,但我通常不利于控制异常的逻辑流程.

是否有捷径可寻?

c#

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

参数名称:root 不能为 Null 异常 Ninject

我在代码重构后收到来自 Ninject 的异常。因此我知道是什么导致了错误,但无法确定原因。代码编译文件,但我从 Ninject 收到运行时错误:

不能为空参数名:root

我正在尝试注入一个类的常量实例:

var subscriptionApiClientHelper = new SubscriptionApiClientHelper(AppSettings.Get<string>("AdminAPIUrl"),
            AppSettings.Get<string>("APIV2Key"), Kernel.Get<ICache>());

kernel.Bind<SubscriptionApiClientHelper>().ToConstant(subscriptionApiClientHelper);
Run Code Online (Sandbox Code Playgroud)

Ninject 在第一行抛出异常。

我的类 SubscriptionApiClientHelper 继承自另一个类(在 Nuget 包中引用),因此:

public SubscriptionApiClientHelper(string baseUrl, string apiKey, ICache cache) : base(baseUrl, apiKey)
{
     _cache = cache;
}
Run Code Online (Sandbox Code Playgroud)

其构造函数是这样的:

 public SubscriptionApiClient(string baseUrl, string apiKey)
 {
     _baseUrl = baseUrl;
     _apiKey = apiKey;
 }
Run Code Online (Sandbox Code Playgroud)

这个基类中的几个方法被覆盖并实现了缓存,因此覆盖的原因是我不需要在基类的所有方法上实现缓存。我从同一个 Nuget 包中注入了一些其他类,但没有问题,但这些没有我怀疑导致问题的继承。注意我成功地注入并使用了我继承的基类(SubscriptionApiClient),它只是导致问题的辅助类。

这是完整的堆栈跟踪:

at Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot root, Type service, Func`2 constraint, IEnumerable`1 parameters, Boolean isOptional, Boolean isUnique)
at Ninject.ResolutionExtensions.Get[T](IResolutionRoot root, IParameter[] parameters)
at AdminPortal.NinjectWebCommon.RegisterServices(IKernel kernel) …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc dependency-injection ninject

2
推荐指数
1
解决办法
2096
查看次数

如何重新考虑此代码?

我正在使用以下函数将DataTable(从数据层传递)中的列映射到对象属性.该函数存在于我正在填充的类中.该类有两个方法:Load()使用值加载对象,LoadAll()返回已填充对象的集合.我希望能够使用相同的代码来填充当前对象或新对象.然而,我对结果不太满意,主要是因为重复这是一个维护噩梦.

Private Function MapDataRowToProperties(ByVal dr As DataRow, ByVal target As Incident) As Incident
            If target.Equals(Me) Then
               Me.ID = Convert.ToInt32(dr.Item("pkIncidentID"))
               Me.Description = dr.Item("IncidentDetail").ToString
               Me.Created = Convert.ToDateTime(dr.Item("CreatedOn"))
               ...
               Return Me
           Else
              Dim NewIncident As New Incident
              NewIncident.ID = Convert.ToInt32(dr.Item("pkIncidentID"))
              NewIncident.Description = dr.Item("IncidentDetail").ToString
              NewIncident.Created = Convert.ToDateTime(dr.Item("CreatedOn"))
              ...
              Return NewIncident
           End If

    End Function
Run Code Online (Sandbox Code Playgroud)

注意:我很清楚ORM工具会为我做这个,我通常使用EntitySpaces,但对于这个项目,我无法这样做.

.net vb.net refactoring

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

绑定的DataGridView可以使用文本单元格作为布尔值吗?

我有一个DGV绑定到一个对象列表.这工作正常,除了其中一个对象属性是布尔值,因此显示为一个复选框,但我更喜欢一个简单的是/否文本字段.我已经考虑添加一个额外的列,并根据布尔值填充适当的字符串,但这似乎有点超过顶部.有没有更简单的方法?

DGV是只读的.

.net datagridview winforms

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

使用jQuery选择器从选择列表中获取所选文本

我正在尝试使用选择器从下拉列表中获取所选文本.如果我直接按名称引用下拉列表,它可以工作:

$('#aBigLongASP.NETWebformsGeneratedName_ddl_StateOfOption :selected').text()
Run Code Online (Sandbox Code Playgroud)

然而,我尝试使用选择器仅使用名称的最后部分来选择下拉列表:

$('#select[id$='ddl_StateOfOption']) :selected).text();
Run Code Online (Sandbox Code Playgroud)

但我似乎无法让它发挥作用.Chrome开发人员工具会抛出以下错误:

SyntaxError:意外的标识符

任何人都可以指出错误在哪里?

jquery

0
推荐指数
1
解决办法
202
查看次数