We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Culture specific setting in the Grid

Thread ID:

Created:

Updated:

Platform:

Replies:

9287 Dec 12,2003 01:08 PM UTC May 12,2005 09:30 AM UTC WinForms 9
loading
Tags: GridControl
Kerry Huguet
Asked On December 12, 2003 01:08 PM UTC

I am developing an app that needs to be culture independent. As a test I set the decimal delimeter to be "," instead of ".". The grid appears to be ingoring this setting and continues to take "." as a decimal value, but when the value is redisplayed it is displayed with a comma and not the decimal that was originally typed. I am setting the TableStyle.CultureInfo for the grid that I am creating, and I have verified that the cell that I am changing contains the correct CultureInfo. Any suggestions???

Administrator [Syncfusion]
Replied On December 12, 2003 02:41 PM UTC

The style culture only affects the display of values. If does not force keyboard input to be treated in any particular manner. But if you set Application.CurrentCulture to the desired culture, I think this will make everything work consistently. Will this work for you?

Kerry Huguet
Replied On December 12, 2003 03:50 PM UTC

Clay, I don''t think that I was clear enough about the real problem that is occuring. To Clarify: I am changing the regional settings of windows for English, to make the decimal symbol "," instead of ".". The Application.CurrentCulture is being set to the correct culture that contains these settings. When a "," is typed into a cell textbox the comma is ignored altother when the value is pulled from the CellValue of the cell. EX: 123,55 now becomes 12355. Thanks for your help, Kerry

Administrator [Syncfusion]
Replied On December 12, 2003 10:26 PM UTC

If I drop a GridControl on a form, and add teh code below to formload, I see 123,45 when I type 123,45. If I uncomment the Format line, I see 123,450. Will something like this work for you?
private void Form1_Load(object sender, System.EventArgs e)
{
	CultureInfo culture = Application.CurrentCulture.Clone() as CultureInfo;
	culture.NumberFormat.NumberDecimalSeparator = ",";
	culture.NumberFormat.NumberGroupSeparator = ".";
	Application.CurrentCulture = culture;
	this.gridControl1.TableStyle.CultureInfo = Application.CurrentCulture;
	GridStyleInfo style = this.gridControl1.ColStyles[2];
	style.CellValueType = typeof(double);
	//style.Format = "F3";
	style.BackColor = Color.LightGoldenrodYellow;
}

Administrator [Syncfusion]
Replied On December 13, 2003 08:18 PM UTC

Clay, Thanks for the code sample it works fine, BUT.... I think I have pin-pointed the problem that I am having. I am using the Culture.CurrentCulture to get the current culture settings. The problem appears to occur because the properties of the Culture info are not set explicitly. For Example: This code works: private void Form1_Load(object sender, System.EventArgs e) { CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; culture.NumberFormat.NumberDecimalSeparator = culture.NumberFormat.NumberDecimalSeparator; this.gridControl1.TableStyle.CultureInfo = culture; GridStyleInfo style = this.gridControl1.ColStyles[2]; style.CellValueType = typeof(double); //style.Format = "F3"; style.BackColor = Color.LightGoldenrodYellow; } This Code does not: private void Form1_Load(object sender, System.EventArgs e) { CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; //culture.NumberFormat.NumberDecimalSeparator = culture.NumberFormat.NumberDecimalSeparator; this.gridControl1.TableStyle.CultureInfo = culture; GridStyleInfo style = this.gridControl1.ColStyles[2]; style.CellValueType = typeof(double); //style.Format = "F3"; style.BackColor = Color.LightGoldenrodYellow; }

Administrator [Syncfusion]
Replied On December 14, 2003 04:58 PM UTC

I set my regional setting to it-it, and I don''t see a difference between either set of code snippets you posted. Exactly, what steps do you take to see a difference? Also, what version of our library are you using?

Administrator [Syncfusion]
Replied On December 15, 2003 12:23 PM UTC

I am using version 1.6.1 of the grid, and the difference should be in the input of values. The code that does not explicitly set the property of culture info ignores the comma when it is entered as a decimal point.

Administrator [Syncfusion]
Replied On December 15, 2003 12:40 PM UTC

If my regional setting are French, and I have this code in FormLoad in 1.6.1.0, CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; this.gridControl1.TableStyle.CultureInfo = culture; GridStyleInfo style = this.gridControl1.ColStyles[2]; style.CellValueType = typeof(double); style.Format = "F3"; style.BackColor = Color.LightGoldenrodYellow; If I type 1,1 the cell shows 1,100 for me. You do not not see this?

Simon Fielke
Replied On May 12, 2005 02:45 AM UTC

I have set the Global Settings to Portuguese - Portuguese with "." as the group and "," as the decimal separator. When I use the following code: CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; culture.NumberFormat.NumberGroupSeparator = "."; culture.NumberFormat.NumberDecimalSeparator = ","; grdSurveys.TableStyle.CultureInfo = culture; I am unable to enter "." as group separators. Are you able to help me with this? Much appreciated. >If my regional setting are French, and I have this code in FormLoad in 1.6.1.0, > > >CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; >this.gridControl1.TableStyle.CultureInfo = culture; >GridStyleInfo style = this.gridControl1.ColStyles[2]; >style.CellValueType = typeof(double); >style.Format = "F3"; >style.BackColor = Color.LightGoldenrodYellow; > > >If I type 1,1 the cell shows 1,100 for me. You do not not see this?

Administrator [Syncfusion]
Replied On May 12, 2005 09:30 AM UTC

Make sure you also set the CellvalueType and teh Format on the style object for these cells. This code worked for me. CultureInfo culture = CultureInfo.CurrentCulture.Clone() as CultureInfo; culture.NumberFormat.NumberGroupSeparator = "."; culture.NumberFormat.NumberDecimalSeparator = ","; this.gridControl1.TableStyle.CultureInfo = culture; GridStyleInfo style = this.gridControl1.ColStyles[2]; style.CellValueType = typeof(double); style.Format ="#,###.00"; style.BackColor = Color.LightGoldenrodYellow;

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

;