C# windows窗体中的文本框到数组声明
Posted
技术标签:
【中文标题】C# windows窗体中的文本框到数组声明【英文标题】:Textbox to array declaration in C# windows form 【发布时间】:2013-05-31 18:29:42 【问题描述】:您好,我是 C# 编程的新手,所以请多多包涵。我目前正在开发一个“简单”的小程序,它允许用户在同一个文本框中输入 25 个值,一旦完成,我希望能够在列表框中将这 25 个值显示为 5 的数组按 5 列行,我想找出数组中的最大数。
private void button1_Click(object sender, EventArgs e)
int arrayrows = 5;
int arraycolomns = 5;
int[,] arraytimes;
arraytimes = new int[array rows, array columns];
// list_Matrix.Items.Add(tb_First.Text);
for (int i = 0; i != 5; i++)
for (int j = 0; j != 5; j++)
array times [i,j]= Convert. To Int32(Tb_First.Text);
list_Matrix.Items.Add(array times[i, j].To String());
这是我尝试在列表框中显示数组的方法,但它不起作用。这也使我无法转到下一部分来查找其中最大的数字。
【问题讨论】:
不要每次都针对完全相同的主题发布新问题,请改进您的第一个问题并在其中添加更多详细信息 如果你想要 5 行乘 5 列为什么int arrayrows = 2; int arraycolomns = 2;
您是否尝试过使用 string.Split 方法(虽然它会给您一个一维数组)来拆分您的 textBox.Text,然后将这些值添加到 listBox 中?
不,我还没有尝试过tat方法..
完全同意@ShadowWizard。你在同一个话题上问了太多问题。
【参考方案1】:
您可以使用 .Split(' ') (或任何其他字符或字符串)拆分字符串。这将为您提供一个包含 25 个元素的一维数组(如果输入了所有内容)。将其转换为二维数组或网格的技巧是使用整数除法和模,以下代码将
String[] splitText = textBox.Text.Split(' '); //gets your 25-length 1D array
//make an empty grid with the right dimensions first
int[][] grid = new int[5][];
for (int i=0;i<5;i++)
grid[i] = new int[5];
//save our highest value
int maxVal = 0;
//then fill this grid
for (int i=0;i<splitText.Length;i++)
int value = int.Parse(splitText[i]);
//i%5 gives us values from 0 to 4, which is our 'x-coordinate' in the grid
//i/5 uses integer division so its the same as Math.floor(i/5.0), giving us your 'y-coordinates'
grid[i%5][i/5] = value;
//check if this value is larger than the one that is currently the largest
if (value > maxVal)
maxVal = value;
这将使用拆分的文本框文本填充二维网格数组,如果文本框中没有足够的值,则会在这些单元格中留下 0。
最后你也会有你的最大价值。
【讨论】:
【参考方案2】:尝试以下操作(通过将数字打印为字符串来显示)。并假设您按以下方式输入数字,
'1,2,3,4...'
string[] nums=txtBox.Text.Split(',');
lstBox.Items.Clear();
int colCount=5;
int colIndex=0;
string line="";
foreach(string num in nums)
if(colIndex==colCount)
lstBox.Items.Add(line);
line="";
colIndex=0;
line+= line==""? num : " "+num;
colIndex+=1;
if(line!="")
lstBox.Items.Add(line);
确保纠正任何语法错误,并将参数名称更改为您自己的。
【讨论】:
【参考方案3】:private void button1_Click(object sender, EventArgs e)
int[] ab=new int[10];
string s = textBox1.Text;
int j = 0;
string [] a = (s.Split(' '));
foreach (string word in a)
ab[j] = Convert.ToInt32(word);
j++;
for (int i = 0; i < 10; i++)
label2.Text +=ab[i].ToString()+" ";
【讨论】:
以上是关于C# windows窗体中的文本框到数组声明的主要内容,如果未能解决你的问题,请参考以下文章
在 c# 中使用文本框中的数据库值打开特定的 Windows 窗体
如何通过在 C# windows 窗体中的文本框中输入来更改图像的大小?