相关疑难解决方法(0)

流利和查询表达 - 一个优于其他人的利益吗?

LINQ是对.NET以来最伟大的改进之一,它可以节省大量的时间和代码行.但是,对于我来说,流畅的语法似乎比查询表达式语法更自然.

var title = entries.Where(e => e.Approved)
    .OrderBy(e => e.Rating).Select(e => e.Title)
    .FirstOrDefault();

var query = (from e in entries
             where e.Approved
             orderby e.Rating
             select e.Title).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

这两者之间是否有任何区别,或者一方面有什么特别的好处呢?

c# linq

247
推荐指数
8
解决办法
6万
查看次数

使用LINQ进行递归控制搜索

如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询.

var checkBoxes = this.Controls
                     .OfType<CheckBox>()
                     .TakeWhile<CheckBox>(cb => cb.Checked);
Run Code Online (Sandbox Code Playgroud)

如果复选框嵌套在当前控件集合中,那么工作正常,但我想知道如何通过向下钻取到顶级控件的控件集合来扩展搜索.

这里问的问题是:

查找在ASP.NET中使用某个接口的控件

并且收到了非LINQ答案,我已经有自己的类型和ID作为扩展方法的递归控件搜索版本,但我只是想知道在LINQ中这样做有多容易?

asp.net linq-to-objects .net-3.5 c#-3.0

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

获取组框内的子控件列表

我的应用程序中有一个包含子控件的groupbox.(如附图中所示).我想枚举所有文本框,使用简单的foreach循环执行一些验证.

本文件大纲将对控制的住房提供一个公平的概念

在此输入图像描述

foreach (Control control in grpBxTargetSensitivity.Controls)
            {
                if (control is FlowLayoutPanel && control.HasChildren)
                {
                    foreach (Control ctrl in control.Controls)
                    {
                        if (ctrl is Panel && ctrl.HasChildren)
                        {
                            foreach (Control tbox in ctrl.Controls)
                            {
                                if (tbox is TextBox)
                                {
                                    TextBox textbox = tbox as TextBox;
                                    validData &= !string.IsNullOrWhiteSpace(textbox.Text);
                                }
                            }
                        }
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

我的问题是,是否有更好的方法(可能通过LINQ)获得所有控件,包括容纳在面板内的文本框,而不是上述方法.

c# linq

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

循环遍历表单中的所有文本框,包括组框内的文本框

我在winform中有几个文本框,其中一些在groupbox中.我试图遍历我的表单中的所有文本框:

For Each c As Control In Me.Controls
    If c.GetType Is GetType(TextBox) Then
        ' Do something
    End If
Next
Run Code Online (Sandbox Code Playgroud)

但它似乎跳过了groupbox中的那些并且仅循环到表单的其他文本框.所以我为groupbox文本框添加了另一个For Each循环:

For Each c As Control In GroupBox1.Controls
    If c.GetType Is GetType(TextBox) Then
        ' Do something
    End If
Next
Run Code Online (Sandbox Code Playgroud)

我想知道:有没有办法循环遍历表单中的所有文本框 - 包括组框内的文本框 - 只有一个For Each循环?或者更好/更优雅的方式来做到这一点?

提前致谢.

vb.net winforms

14
推荐指数
1
解决办法
5万
查看次数

除了按钮之外,如何禁用表单上的所有控件?

我的表单有数百个控件:菜单,面板,分割器,标签,文本框,您可以命名.

除了单个按钮之外,有没有办法禁用每个控件?

按钮之所以重要,是因为我不能使用禁用窗口或其他东西的方法,因为一个控件仍然需要可用.

c# controls winforms

13
推荐指数
3
解决办法
5万
查看次数

如何检测表单的任何控件的变化?

如何在C#中检测表单控件中的更改?

因为我在一个表单上有很多控件,如果表单中的任何控件值发生变化,我需要禁用一个按钮.我正在寻找一些内置的函数/事件处理程序/属性,并且不想为此创建自定义函数.

c# winforms

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

如何在Windows窗体中获取按钮控件 - 面板

获取表单中的所有按钮,包括同一表单面板中的按钮.

c# winforms

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

从.c#.net中的一堆复选框中选中的复选框

问题是在c#.NET,Visual Studio,Windows Form Application下面临的

我有一堆复选框随机放在一个表格和一个面板中.因此,如果checkbox在表单中选择任何其值,则应该将其值相加.

底线:不是使用大量的"If-else循环"来评估是否已经检查过.我想用"for循环"来简化它.

有没有任何Checkbox group name类型的功能,我可以使用???

我想要这样的代码:

for(int i=0;i<checkboxes.length;i++)
{
    string str;
    if(chkbox.checked)
    {
        str+=chkbox.value;
    }
}
Run Code Online (Sandbox Code Playgroud)

checkboxes组名在哪里.

.net c# winforms

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

C#使用Windows窗体中使用的所有按钮填充数组

我正在尝试使用所有Button正在使用的s 来填充数组Form1.

Button[] ButtonArray = new Button[5];

ButtonArray[0] = button1;   
ButtonArray[1] = button2;   
ButtonArray[2] = button3;   
ButtonArray[3] = button4;   
ButtonArray[4] = button5;
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常.但是,如果我有100个按钮,这是一个很长的过程.

c# winforms

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

使用模式按名称查找Windows窗体控件

我想列出另一个名称以"btnOverlay"开头的控件中的所有控件.我无法使用Controls.Find,因为它需要完全匹配.我相信我可以使用LINQ,但我对此并不是很有经验.可能吗?我该怎么做?

我正在使用.NET 4.0.

.net linq winforms

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

标签 统计

c# ×7

winforms ×7

linq ×3

.net ×2

.net-3.5 ×1

asp.net ×1

c#-3.0 ×1

controls ×1

linq-to-objects ×1

vb.net ×1