在C#中,我想从单个文本框中获取多个值。我想开发一个应用程序,在其他投影系统中转换纬度和经度的地理坐标。例如:用户输入以下协调41°24'12.2“N。软件将分割并分配给a = 41; b = 24; c = 12.2;我提到b可以是01到59并且可以是用户选择两种形式的选择,如:41°05'12.2“N。或41°5'12.2“N。
谢谢
答案 0 :(得分:2)
请阅读有关string.substring和string.indexof方法的更多信息。 有关C#中扩展方法的更通用外观。
在这里你拥有它: https://dotnetfiddle.net/J66V5a
答案 1 :(得分:0)
您可以使用文本框文本来解析数据,但请确保按以下方式过滤输入字符串:
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != ':'|| e.KeyChar != '"' || e.KeyChar != '°' || e.KeyChar != ''')
{
e.Handled = true;
}
将符号用作分隔符并将字符串拆分为3:
string ss = "41°24'12.2" + '"' + "N";
string[] values = new string[3];
char[] separators = new char[3] { '°',Convert.ToChar(0x27),Convert.ToChar(0x22)};
values = ss.Split(separators);
您需要的值位于"值"的前3个区块中。数组作为字符串。使用转化类(int a = Convert.ToInt32(values[0]);
)来处理数据。