c# 来自单个文本框的多个值

c# Multiple values from a single textbox

在 C# 中,我想从单个文本框中获取多个值。我想开发一个应用程序,将地理坐标从其他投影系统中的纬度和经度转换。例如:用户输入以下坐标 41°24'12.2"N. The software will split and will assign to a = 41; b=24; c= 12.2; I mention that the b can be from 01 to 59 and can be writing in two forms choice by user, like: 41°05'12.2"N。或 41°5'12.2"N.

谢谢

请详细阅读 string.substring 和 string.indexof 方法。 如需更通用的 C# 扩展方法。

给你: https://dotnetfiddle.net/J66V5a

您可以使用文本框文本来解析数据,但请确保按照以下方式过滤输入字符串:

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);

您需要的值作为字符串位于 "values" 数组的前 3 个块中。使用转换 class (int a = Convert.ToInt32(values[0]);) 来处理数据。