美好的一天,
因此,我当然想开发一个应用程序。生成墓地坟墓ID列表的程序。它应该在listbox
中显示ID。
ID示例:
GTH-1-1-1
GTH-1-1-2
“ GTH”是文本框中“ Friedhof”旁边的值。 其他数字应为上述文本框之间的数字。 例如:从(von)“ 1”到(bis)“ 9”
所以ID应该是:Friedhof-Feld-Reihe-Nr
忽略右侧的下拉列表。所以我不知道从哪里开始。我是C#的新手。您能给我一个代码示例,当我按下“开始”按钮时,它应该循环并在列表框中写入ID。
我真的只需要知道如何开始...
这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Friedhof_Generator
{
public partial class frm_Grabnummer : Form
{
public frm_Grabnummer()
{
InitializeComponent();
ddl_Feld.Items.Add("Arabisch");
ddl_Feld.Items.Add("Römisch");
ddl_Feld.Items.Add("Alphabetisch");
ddl_Reihe.Items.Add("Arabisch");
ddl_Reihe.Items.Add("Römisch");
ddl_Reihe.Items.Add("Alphabetisch");
ddl_Nr.Items.Add("Arabisch");
ddl_Nr.Items.Add("Römisch");
ddl_Nr.Items.Add("Alphabetisch");
}
private void ddl_Feld_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void btn_Start_Click(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:0)
如果我对您的理解正确,那么您想获得所有可能的组合吗? 我使用了嵌套循环,因为它希望更容易理解。
嵌套循环:对于外部循环中的每个值,将执行内部循环中的每个值。
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 3; j++)
{
//do something...
}
}
对于i = 0,内部循环将执行与j = 0相同的三次; j = 1和j = 2。现在,我将增加1。然后再次执行内部循环3次。这将重复直到i> = 4。
示例(未经测试):
private int nFieldFrom = 0;
private int nFieldTo = 0;
private int nRowFrom = 0;
private int nRowTo = 0;
private int nNumberFrom = 0;
private int nNumberTo = 0;
//Not necessary for the functionality but it is good to validate the user input
private bool ValidateInput()
{
bool blnValid;
if(!int.TryParse(FieldFrom.Text, out nFieldFrom)
|| !int.TryParse(FieldTo.Text, out nFieldTo)
|| !int.TryParse(RowFrom.Text, out nRowFrom)
|| !int.TryParse(RowTo.Text, out nRowTo)
|| !int.TryParse(NumberFrom.Text, out nNumberFrom)
|| !int.TryParse(NumberTo.Text, out nNumberTo))
{
blnValid = false;
}
else
{
blnValid = true;
}
return blnValid;
}
private void btn_Start_Click(object sender, EventArgs e)
{
//This list will contain all your ID's
List<string> lstResults = new List<string>();
//Every time the button is clicked the user input should be validated
//GTH field = your 'Friedhof' field
if(ValidateInput() && !string.IsNullOrEmpty(GTHField.Text))
{
for(int f = nFieldFrom; f <= nFieldTo; f++)
{
for(int r = nRowFrom; r <= nRowTo; r++)
{
for(int n = nNumberFrom; n <= nNumberTo; n++)
{
lstResults.Add(string.Format("{0} - {1} - {2} - {3}", GTHField.Text, f, r, n));
}
}
}
lb_Ausgabe.DataSource = lstResults;
}
else
{
//error handling
//for exmaple show a message box
//MessageBox.Show("....");
}
}