我的应用程序中有一个包含子控件的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)获得所有控件,包括容纳在面板内的文本框,而不是上述方法.
我正在学习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) 默认情况下,C#Combobox中的项目保持对齐.除了重写DrawItem方法和设置组合框绘制模式 - > DrawMode.OwnerDrawFixed之外,还有其他选项可用于更改此理由吗?
干杯
我们有一个现有的Windows .net应用程序,它使用所有自定义控件.
由于我们只是支持默认的96 dpi分辨率,因此这些天很顺利.
现在我们需要我们的应用程序是dpi感知的.当我们去下一个时,事情就会变得混乱
更高分辨率120或144等
最常见的问题
位图缩放问题和
文字截止
在我的应用程序中使用这样的修复是徒劳的(因为所有使用的控件都是
定制,不是dpi感知).
在修改我的application.manifest以启用dpi-awareness标志并在主窗体和其他窗体上将AutoScaleMode设置为AutoScaleMode.Dpi之后尝试的事情使用AutoScaleMode作为继承
图形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)
但所有这些似乎都不适合我的情况.
有谁知道/建议我更好地解决这个问题.
谢谢
VATSAG
有没有一种方法可以避免字符串中的“\”字符?
//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) 我需要在Windows XP Embedded上使用C#(.NET 2.0)以编程方式禁用网络适配器.
背景原因:在PC上安装蓝牙堆栈后,蓝牙PAN适配器会阻止蓝牙管理器程序(在系统托盘中运行).如果我禁用蓝牙PAN,那么蓝牙管理器工作正常.
此问题仅在Windows XP Embedded计算机上发生.
我自己开始学习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脚本或标准脚本实现此目的.
非常感谢任何指导
问候
跋蹉
我最近开始学习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 语句有关的内容。
我在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)
任何人都可以解释我如何,添加密封属性将影响/改善情况.
干杯
我正在尝试使用此命令行获取头部的修订信息
svn info https://myserver/branches/Code_Improvements -rHEAD | find "Revision"
Run Code Online (Sandbox Code Playgroud)
但是,这将返回Revision:1234
由于我使用svn info命令的结果在我的批处理文件中设置变量,有没有办法可以得到数字1234,而不是响应版本:1234.
c# ×6
.net ×3
winforms ×2
.net-2.0 ×1
android ×1
angular ×1
bluetooth ×1
combobox ×1
command-line ×1
dpi ×1
inno-setup ×1
java ×1
linq ×1
ng-switch ×1
pascalscript ×1
scaling ×1
str-replace ×1
svn ×1