c# - 如何遍历 numericupdown 的多个元素
问题描述
我是 C# 新手,我有几个 numericupdown 元素,我想在循环中使用这是我所做的,我还尝试了其他一些东西,例如 foreach。
private void AffecteValeurBinaire(int valeur)
{
nudBinaire3.Value = valeur % 2;
valeur >>= 1;
nudBinaire2.Value = valeur % 2;
valeur >>= 1;
nudBinaire1.Value = valeur % 2;
valeur >>= 1;
nudBinaire0.Value = valeur % 2;
}
我想把上面的代码变成一个循环,这就是我上面所做的
private NumericUpDown[] nudBinaire = new NumericUpDown[] {nudBinaire3,nudBinaire2,nudBinaire1,nudBinaire0 };
private void AffecteValeurBinaire(int valeur)
{
for (int i = 3; i >= 0; i++)
{
nudBinaire[i].Value = valeur % 2;
valeur >>= 1;
}
}
private void nudDecimal_ValueChanged(object sender, EventArgs e)
{
if (radDecimal.Checked)
{
nudHexadecimal.Value = nudDecimal.Value;
AffecteValeurBinaire(Convert.ToInt32(nudDecimal.Value));
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void nudBinaire_ValueChanged(object sender, EventArgs e)
{
if (radBinaire.Checked)
{
decimal v = (nudBinaire0.Value * 8) + (nudBinaire1.Value * 4) +
(nudBinaire2.Value * 2) + (nudBinaire3.Value);
nudDecimal.Value = v;
nudHexadecimal.Value = v;
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void nudHexadecimal_ValueChanged(object sender, EventArgs e)
{
if (radHexadecimal.Checked)
{
nudDecimal.Value = nudHexadecimal.Value;
AffecteValeurBinaire(Convert.ToInt32(nudHexadecimal.Value));
Affiche7Segments(Convert.ToInt32(nudDecimal.Value));
}
}
private void radDecimal_CheckedChanged(object sender, EventArgs e)
{
if (radDecimal.Checked == true)
{
nudDecimal.Enabled = true;
}
}
private void radBinaire_CheckedChanged(object sender, EventArgs e)
{
nudBinaire0.Enabled = nudBinaire1.Enabled = nudBinaire2.Enabled = nudBinaire3.Enabled = radBinaire.Checked;
}
private void radHexadecimal_CheckedChanged(object sender, EventArgs e)
{
nudHexadecimal.Enabled = radHexadecimal.Checked;
}
** 我收到此错误:字段初始化程序无法引用该字段**
解决方案
您可以尝试声明nudBinaire
为全局变量,但在方法中初始化它(如Form1_Load
)。
// declare as a global variable
NumericUpDown[] nudBinaire;
private void Form1_Load(object sender, EventArgs e)
{
// initialize nudBinaire
nudBinaire = new NumericUpDown[] { nudBinaire3, nudBinaire2, nudBinaire1, nudBinaire0 };
}
private void AffecteValeurBinaire(int valeur)
{
for (int i = 3; i >= 0; i--)
{
nudBinaire[i].Value = valeur % 2;
valeur >>= 1;
}
}
private void button1_Click(object sender, EventArgs e)
{
// test
AffecteValeurBinaire(100);
}
推荐阅读
- apache-kafka - KAFKA - 错误由于(kafka.server.BrokerMetadataCheckpoint)而无法写入 meta.properties
- css - 当父是位置时,相对子元素不可点击
- c# - 将标头请求和标头响应添加到 serilog 中间件日志记录
- mysql - 不正确的整数值:第 2 行 MySQL 中列“变量”的“H”
- html - Chrome:CSS计算样式有一小部分不同
- go - 如何在不尝试存储的情况下验证 golang 中的模板?
- python - aiohttp 会话的 NTLM 身份验证
- c# - 如何在c#中将带分隔符的字符串转换为json字符串
- django - 将 PRIMARY KEY 约束添加到现有表
- node.js - NextJS 与 ExpressJS 服务器 ENV 变量在使用前未加载