有关c#的问题
c#窗体里有多个文本框,文本框里是整数值,然后对多个文本框里的值进行大小比较,排列顺序。输出最大值,这时怎样获取最大值文本框的名字(就是文本框的name)。求助! --------------------编程问答-------------------- 文本框使用 txt1 txt2.。。获取数组 --------------------编程问答-------------------- 字典 Dictionary<string,int> string为名字,int为值 --------------------编程问答--------------------能具体说一下吗?有些不明白 --------------------编程问答-------------------- 遍历所有文本框,看一下,哪个里面的值跟最大值一样,就找到名字了 --------------------编程问答--------------------
怎么遍历窗体上的所有文本框?最好是窗体上的文本框可以添加和减少。后台的代码不要修改的。 --------------------编程问答--------------------
谢谢你的回答,但是文本框里的值不是固定的,也就是说最大值不确定。怎么办 --------------------编程问答-------------------- Dictionary<string,int> dict = new Dictionary<string,int>();
foreach(Control ctrl in Form.Controls)
{
if(ctrl is TextBox)
{
string name = ((TextBox)ctrl).Name;
int value = Convert.ToInt32(((TextBox)ctrl).Text);
dict.Add(name,value);
}
}
dict.Max().Key就是最大名称,其中Max的判断条件可以自定义。 --------------------编程问答-------------------- 还有没有啊?? --------------------编程问答-------------------- 7楼
+1 --------------------编程问答-------------------- 7楼+10086
嘛,就是Key存TextBox的引用,Value存TextBox.Text
// 假设有三个TextBox
Dictionary<TextBox, string> dic = new Dictionary<TextBox, string>();
KeyValuePair<TextBox, string> maxBox = new KeyValuePair<TextBox, string>(textBox1, textBox1.Text);
dic.Add(textBox2, textBox2.Text);
dic.Add(textBox3, textBox3.Text);
foreach (KeyValuePair<TextBox, string> item in dic)
{
int maxValue = Convert.ToInt32(maxBox.Value);
int itemValue = Convert.ToInt32(item.Value);
if (maxValue < itemValue)
{
maxBox = item;
}
}
MessageBox.Show(string.Format("最大值的文本框为:{0},值为:{1}", maxBox.Key.Name, maxBox.Value)); --------------------编程问答-------------------- 上面代码没验证是不是数字,要验证的话楼主自行写代码咯 --------------------编程问答-------------------- 另外,7楼的Max方法行不通的,没实现 IComparable这个接口,还是手动写比较吧 --------------------编程问答--------------------
// 用 SortedList<int, Control>
补充:.NET技术 , C#