我有两个NumericUpDown控件的ValueChanged事件附加代码:
private void numericUpDownHeight_ValueChanged(object sender, EventArgs e)
{
if (checkBoxRetainRatio.Checked)
{
numericUpDownWidth.Value = numericUpDownHeight.Value;
}
}
private void numericUpDownWidth_ValueChanged(object sender, EventArgs e)
{
if (checkBoxRetainRatio.Checked)
{
numericUpDownHeight.Value = numericUpDownWidth.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用控件的向上/向下箭头更改编辑框中的值时,这可以使用花花公子; 但是如果我手动编辑这个值(例如,当我想将它从100改为25,并且可以手动执行六次击键,而递增5,使用向下箭头需要15),事件不会触发.
有没有一种快速的方法来解决这个相当轻微的刺激(如果它需要一些非常神秘和棘手的实现它,我不会打扰).
我是C#编程的新手.
我正在制作一个有趣的程序,它将两个数字加在一起,而不是在消息框中显示总和.我的表单上有两个numericUpDowns和一个按钮.按下按钮时,我希望它显示一个带答案的消息框.
问题是,我不确定如何将numericUpDowns中的twp值一起添加.
到目前为止,我在我的按钮事件处理程序中有这个:
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(this.numericUpDown1.Value + this.numericUpDown2.Value);
}
Run Code Online (Sandbox Code Playgroud)
但显然,它不起作用.它给了我2个编译器错误:1.'System.Windows.Forms.MessageBox.Show(string)的最佳重载方法匹配有一些无效的参数2.参数'1':不能将十进制转换为'string'
谢谢!
我想知道一个小数字列表[1..20],你会建议什么样的控制来提示用户他的选择.
我正在考虑使用NumericUpDown控件,但WebForm并不存在,更糟糕的是,我正在Pylons应用程序上部署(Python Framework)
你觉得DropDown控件就足够了吗?从某种角度来说,我仍然觉得NumericUpDown控件更直观,更容易使用.
会喜欢SO社区的意见,也许会就最佳实践提出建议.
非常感谢!
编辑:忘了提到我正在使用YUI库和webhelpers库,并且据我所知,没有这样的控件具有与numericupdown相同的功能
我正在为一个有数字的字段编辑.我尝试了一个文本字段,但由于它是一个Number数据类型,它不顺利 - 尽管将字符串重新编号为数字等...它一直给我NaN作为值.所以我决定最好使用数字步进器.
当我最初加载它时,它会丢弃我的所有小数,只显示我的数字作为整数.我将stepIncrement更改为0.1,现在它确实显示了小数(一个奇怪的要求imo)..但是当我升级它偶尔给我一个像'17 .700000000000003'的值,当我期望17.7.我的数据中的所有数字都有一个小数位.我知道我可以写一个dataformatter,但在这种情况下似乎没有必要.
还有其他方法可以解决这个问题吗?
我有一个Windows numericupdown控件.我想限制它,以便用户只能输入整数.我怎么做?目前用户也可以输入十进制数.谢谢PS我正在使用.net
我正在尝试制作一个小的披萨订单,但我的计算有问题.选择披萨后,单价和总计算都可以,但选择添加会引入问题.更改NumericUpDown值后,卡路里不正确(所有单位都有不变的价格和卡路里).NumericUpDown的名称是numberofunit.我该怎么计算它们?
if (pepper.Checked)
{
string peppereklendi =
Convert.ToString(Convert.ToDouble(unitprice.Text)+ pepperprice);
unitprice.Text = peppereklendi;
total.Text =
Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);
string pepperkaloriekle =
Convert.ToString(Convert.ToInt16(gizlikalori.Text) + pepperkalori);
gizlikalori.Text = pepperkaloriekle;
amountofcalorie.Text =
Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}
else
{
string peppereklendi = unitprice.Text;
unitprice.Text =
Convert.ToString(Convert.ToDouble(peppereklendi) - pepperprice);
total.Text = Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);
string pepperkaloriekle = gizlikalori.Text;
gizlikalori.Text =
Convert.ToString(Convert.ToDouble(pepperkaloriekle) - pepperkalori);
amountofcalorie.Text =
Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}
Run Code Online (Sandbox Code Playgroud)
此代码是胡椒的复选框代码.
我想使用 C# 在数字向上/向下控件中选择可用值

一般来说,如果我们在控件内双击,则会得到以下结果(整个文本在 BG 中被选择为蓝色)

现在我的问题是如何在语法上实现这个程序?
到目前为止我的足迹:
重点();
选择();
这似乎不起作用,在这方面的任何帮助将不胜感激,谢谢..:)
WinForms NumericUpDown 允许我们使用 Select(Int32, Int32) 方法选择其中的文本范围。有什么方法可以设置/检索选定文本的起点、选定的字符数和选定的文本部分,就像我们可以使用 SelectionStart、SelectionLength 和 SelectedText 属性对其他类似文本框的控件执行此操作一样吗?
假设我有一个DecimalPlaces = 2的NumericUpDown.
用户键入"1.233"(他们不知道,不小心轻敲"3"键两次)然后导航离开控件.此输入现在在控件中显示为"1.23".但是,Value属性现在为1.233.因此,对用户来说,他们正在使用值1.23,实际上,他们正在使用值1.233.有没有办法让NumericUpDown返回"正确"值:1.23?
我知道DecimalPlaces属性"...设置要显示的小数位数",但是用户无法通过简单地读取屏幕来确定将使用的值.
一种方法是始终忽略所有NumericUpDowns的Value属性,只使用Text属性(从IntelliSense隐藏)并对该属性执行decimal.Parse() - 但这看起来很尴尬.另一点是,如果用户键入"1.233"然后导航离开控件,那么,当ValueChanged事件发生时,Text属性仍为"1.233".
我想从通过 for 循环生成的 NumericUpDown 中获取值,该循环将被迭代 N 次。但是在我的代码中,我只能获取第一个 NumericUpDown 值,并且它是通过单击按钮触发的。
显示 NumericUpDown 工具的代码:
for (int i = 0; i < 6; i++) // should be i < n
{
NumericUpDown note = new NumericUpDown();
note.Name = "Note" + i.ToString();
note.Location = new System.Drawing.Point(20, 40 + (40 * i));
note.Size = new System.Drawing.Size(40, 25);
note.Maximum = new decimal(new int[] { 10, 0, 0, 0 });
this.Controls.Add(note);
}
Run Code Online (Sandbox Code Playgroud)
获取值的代码:
var numericUpDown = this.Controls["note0"] as NumericUpDown;
var value = numericUpDown.Value;
MessageBox.Show(value.ToString());
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得所有的值?非常感谢您的帮助。