小编thi*_*-Me的帖子

获取组框内的子控件列表

我的应用程序中有一个包含子控件的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
查看次数

如何以固定速率记录Android Motion Sensors的数据

我正在学习Android编程的基础知识.

我有一个简单的android测试应用程序,其中我将加速度计,磁力计和方向数据记录到外部文件,同时也显示它.我通过调用方法initLogger来单击Start按钮(相关传感器的registerListener)来启动日志记录过程.

看起来与此类似......

public void initLogger(View view)
{
    boolean bFlag = false;

    Button btnStart = (Button)findViewById(R.id.btnStartLog);
    Button btnStop = (Button)findViewById(R.id.btnStopLog);

    btnStart.setEnabled(bFlag);
    btnStop.setEnabled(!bFlag);

    bEnableLogging = true;
    //Start reading the sensor values
    sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_UI);
    sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI);

   //so on.... 
Run Code Online (Sandbox Code Playgroud)

还有一个Stop按钮,它将停止记录过程(最后通过为每个传感器调用unregisterListener来取消注册)

数据检索过程发生在onSensorChanged处理程序中,该处理程序将从相关传感器检索数据,将值设置为相应的UI元素,最后将数据记录到外部.csv文件.

onSensorChanged事件处理程序看起来像这样......

public void onSensorChanged(SensorEvent event) {


    // TODO Auto-generated method stub
    // accelerometer
    TextView tAX = (TextView) findViewById(R.id.txtViewAxValue);
    TextView tAY = (TextView) findViewById(R.id.txtViewAyValue);
    TextView tAZ = (TextView) findViewById(R.id.txtViewAzValue);

    // magnetic field
    TextView tMX …
Run Code Online (Sandbox Code Playgroud)

java android android-sensors sensor-fusion

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

在C#中使用右对齐组合框

默认情况下,C#Combobox中的项目保持对齐.除了重写DrawItem方法和设置组合框绘制模式 - > DrawMode.OwnerDrawFixed之外,还有其他选项可用于更改此理由吗?

干杯

.net c# combobox text-alignment winforms

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

使现有的.NET Windows应用程序具有DPI感知能力

我们有一个现有的Windows .net应用程序,它使用所有自定义控件.

由于我们只是支持默认的96 dpi分辨率,因此这些天很顺利.

现在我们需要我们的应用程序是dpi感知的.当我们去下一个时,事情就会变得混乱

更高分辨率120或144等

最常见的问题

  1. 位图缩放问题和

  2. 文字截止

在浏览了这些 MSDN文档和现有的 SO问题后,我尝试了

在我的应用程序中使用这样的修复是徒劳的(因为所有使用的控件都是

定制,不是dpi感知).

在修改我的application.manifest以启用dpi-awareness标志并在主窗体和其他窗体上将AutoScaleMode设置为AutoScaleMode.Dpi之后尝试的事情使用AutoScaleMode作为继承

  1. 更改了OnLoad事件中的控件Font

图形g = this.CreateGraphics(); int dpi = int.Parse(g.DpiX.ToString());

    switch (dpi)
    {
        case 125:
            this.Font = new Font(this.Font.FontFamily, this.Font.Size * 125.0f / (float)(g.DpiX));
            Debug.WriteLine("<<---- Selected DPI Resolution :" + " 125 DPI ---->"); 
            break;
    ... so on
Run Code Online (Sandbox Code Playgroud)
  1. 尝试重写ScaleControl方法以使用基于DPI的不同缩放因子

但所有这些似乎都不适合我的情况.

有谁知道/建议我更好地解决这个问题.

谢谢

VATSAG

.net c# scaling dpi winforms

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

如何从字符串中删除反斜杠(“\”)字符

有没有一种方法可以避免字符串中的“\”字符?

//bit array
    BitArray b1 = new BitArray(Encoding.ASCII.GetBytes("10101010"));
    BitArray b2 = new BitArray(Encoding.ASCII.GetBytes("10101010"));

    //Say i perform XOR operation on this 
    b1 = b1.Xor(b2);

    //After the XOR oper the b1 var holds the result 
    //but i want the result to be displayed as 00000000

    //So i convert the bitarray to a byte[] and then to string 
    byte[] bResult = ToByteArray(b1);
    strOutput  = Encoding.ASCII.GetString(bResult);
Run Code Online (Sandbox Code Playgroud)

输出

    The string strOutput is = "\0\0\0\0\0\0\0\0" 
    But the desired output is 00000000
Run Code Online (Sandbox Code Playgroud)

其中 ToByteArray 可能是一个简单的方法,如下所示

public static …
Run Code Online (Sandbox Code Playgroud)

c# str-replace

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

如何在C#中以编程方式禁用(或重置)网络适配器

我需要在Windows XP Embedded上使用C#(.NET 2.0)以编程方式禁用网络适配器.

背景原因:在PC上安装蓝牙堆栈后,蓝牙PAN适配器会阻止蓝牙管理器程序(在系统托盘中运行).如果我禁用蓝牙PAN,那么蓝牙管理器工作正常.

此问题仅在Windows XP Embedded计算机上发生.

.net c# windows-xp-embedded bluetooth

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

如何从Innosetup脚本修改exe.config

我自己开始学习Innosetup脚本.为此我创建了一个简单的C#控制台应用程序,它从配置文件中读取一个元素并输出到控制台.

<configuration>
  <appSettings>
    <add key ="Name" value="Brad Pitt"/> 
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

例如:它应通过查询键属性"Name"来读取值.

我希望从Innosetup安装脚本中写入.config中的值.

即在安装过程中我将收集名称(在这种情况下为"Brad Pitt")并将其写入配置文件的值

<add key ="Name" value="Brad Pitt"/> 
Run Code Online (Sandbox Code Playgroud)

问题是如何使用Pascal脚本或标准脚本实现此目的.

非常感谢任何指导

问候

跋蹉

inno-setup pascalscript

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

在 Angular 2 中的数字范围上使用 ngSwitch

我最近开始学习Angular2。

我想知道是否有可能使用 ngSwitch 或 ngIf angular2

针对特定数字范围的指令?

假设我想根据范围更新某些文本的颜色。

<25 = Mark the text in red
>25 && <75 = Mark the text in orange
>75 = Mark the text in green
Run Code Online (Sandbox Code Playgroud)

如何使用 Angular2 ngIf/ngSwitch 指令实现相同的效果。

有没有办法写这样的东西?

<div [ngIf]="item.status < 25">
<h2 class="text-red">{{item.status}}</h2>
</div>
<div [ngIf]="item.status > 25 && item.status < 75">
<h2 class="headline text-orange">{{item.status}}</h2>
</div>
<div [ngIf]="item.status > 75">
<h2 class="headline text-green">{{item.status}}</h2>
</div>
Run Code Online (Sandbox Code Playgroud)

或者任何与使用 ngSwitch、ngSwitchWhen 语句有关的内容。

ng-switch angular-ng-if angular

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

在c#中使用密封的字符串属性

我在c#写一堂课.

我偶然发现了代码重构提供的这条建议.我没有

在提供此建议/改进时,获得该工具的确切含义.

情况:

我使用this.Text属性在我的Form类的构造函数中设置标题.

Form()
{
   //some initialization code ...

   //...

   this.Text = "Non modal form";           //Suggestion offered here..
}
Run Code Online (Sandbox Code Playgroud)

代码重构工具提示警告:说访问虚拟成员

要更正此问题,工具会自动添加属性

  public override sealed string Text
   {
        get { return base.Text; }
        set { base.Text = value; }
   } 
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释我如何,添加密封属性将影响/改善情况.

干杯

c# .net-2.0

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

如何在Windows上使用命令行获取svn修订信息

我正在尝试使用此命令行获取头部的修订信息

svn info https://myserver/branches/Code_Improvements -rHEAD | find "Revision"
Run Code Online (Sandbox Code Playgroud)

但是,这将返回Revision:1234

由于我使用svn info命令的结果在我的批处理文件中设置变量,有没有办法可以得到数字1234,而不是响应版本:1234.

svn command-line

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