Winforms 我希望用户只能在文本框中键入x.x.x.x

Winforms 我希望用户只能在文本框中键入x.x.x.x,winforms,textbox,maskedtextbox,Winforms,Textbox,Maskedtextbox,我希望用户只能在文本框中键入X.X.X.X(X是一个数字) 我尝试了一个maskedTextbox,并将该掩码下的属性更改为: //Mask: 9.9.9.9 //Previw: _,_,_,_ 但当我从maskedTextbox中得到值时,我得到: //Value: 1,1,1,1 我是否有可能得到: //Value : 1.1.1.1 这包括在以下内容中: 十进制占位符。实际使用的显示字符将是适合于格式提供程序的十进制符号,由控件的FormatProvider属性确定 \转义。转

我希望用户只能在文本框中键入X.X.X.X(X是一个数字)

我尝试了一个maskedTextbox,并将该掩码下的属性更改为:

//Mask: 9.9.9.9

//Previw: _,_,_,_
但当我从maskedTextbox中得到值时,我得到:

//Value: 1,1,1,1
我是否有可能得到:

//Value : 1.1.1.1
这包括在以下内容中:

十进制占位符。实际使用的显示字符将是适合于格式提供程序的十进制符号,由控件的FormatProvider属性确定

\
转义。转义掩码字符,将其转换为文字。“\\”是反斜杠的转义序列


因此,如果您总是想要一个句号,而不考虑区域设置,那么您不应该使用
:在这种情况下,您应该使用
\.

我猜您的文化创建问题被视为de At将
视为
因此您需要将其转换为“.”

请尝试以下代码:-

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;

你的文化背景是什么?尝试将
NumberDecimalSeparator
设置为dot
您需要一个只接受数字和点的文本框,不是吗?我的区域设置:de-At@Sujith Karivelil:是的,但必须按以下顺序进行:“x.x.x.x”我猜您将区域设置为nl nl nl,因为它。因为,属性中的no是culture=de-AtThanks,我会将其设置为“正确答案”,但我现在不能这样做(sry我不能将此answe设置为有用,因为我没有15个声誉),祝您有一个愉快的一天:)