PDA

View Full Version : فيلد Money در dataGridView-فوري



hasty0087
جمعه 09 مهر 1389, 21:17 عصر
سلام خدمت برنامه نويسان عزيز.
فيلد Money در Data Grid با سه رقم اعشار نشان داده مي شه؟ مي خوام اين اعشار رو نداشته باشه. در واقع خودش 3 تا صفر جلوش مي زارم.راه حل چيه؟؟ cellformatStyle (خصوصيت گريد ويو)رو رفتم و decimal مربوط به currency و numeric رو صفر كردم اما جواب نداد.
چه كنم؟؟؟؟؟

k1csharpdeveloper
جمعه 09 مهر 1389, 22:13 عصر
سلام من یک usercontrol نوشتم که بکارت میاد ببین اول یک usercontrol اضافه کن بعد این کدو اضافه کن بعد توی toolbox ات اضافه میشه textbox سفارشی پول که بعد اینو برای datagrid آضافه کن




using System;
using System.Collections.Generic;
using System.Text;

namespace FSToolBox.Windows.Forms
{
public class TextBox : System.Windows.Forms.TextBox
{
#region Fields...
private bool _isRequired;
private string _caption;
private InputLanguages _inputLanguage;
private InputTypes _inputType;

private System.Drawing.Font _farsiFont;
private System.Drawing.Font _englishFont;
private System.Windows.Forms.ErrorProvider _errorPorvider;
private System.Globalization.CultureInfo _farsiCulture;
private System.Globalization.CultureInfo _englishCulture;
#endregion

#region Properties...
[System.ComponentModel.DefaultValue(InputTypes.Text )]
[System.ComponentModel.Category("Extra features")]
public InputTypes InputType
{
get { return _inputType; }
set { _inputType = value; }
}

[System.ComponentModel.DefaultValue(InputLanguages. Farsi)]
[System.ComponentModel.Category("Extra features")]
public InputLanguages InputLanguage
{
get { return _inputLanguage; }
set
{
_inputLanguage = value;

switch (value)
{
case InputLanguages.Farsi:
{
RightToLeft = System.Windows.Forms.RightToLeft.Yes;
Font = _farsiFont;

break;
}
case InputLanguages.English:
{
RightToLeft = System.Windows.Forms.RightToLeft.No;
Font = _englishFont;

break;
}
default:
break;
}
}
}

[System.ComponentModel.DefaultValue("")]
[System.ComponentModel.Category("Extra features")]
public string Caption
{
get { return _caption; }
set { _caption = value; }
}

[System.ComponentModel.DefaultValue(false)]
[System.ComponentModel.Category("Extra features")]
public bool IsRequired
{
get { return _isRequired; }
set { _isRequired = value; }
}
#endregion

#region Constructors....
public TextBox()
{
_farsiFont = new System.Drawing.Font("Tahoma", 8, System.Drawing.FontStyle.Regular);
_englishFont = new System.Drawing.Font("Verdana", 8, System.Drawing.FontStyle.Regular);

_farsiCulture = new System.Globalization.CultureInfo("fa-IR");
_englishCulture = new System.Globalization.CultureInfo("en-US");

Caption = "";
IsRequired = false;
InputLanguage = InputLanguages.Farsi;
InputType = InputTypes.Text;
}
#endregion

#region Methods...
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
base.OnKeyPress(e);

switch (InputType)
{
case InputTypes.Numeric:
case InputTypes.Currency:
{
if (!(char.IsDigit(e.KeyChar) || e.KeyChar == 8))
e.Handled = true;

break;
}
default:
break;
}
}

protected override void OnValidating(System.ComponentModel.CancelEventArgs e)
{
base.OnValidating(e);

if (IsRequired)
{
if (_errorPorvider == null)
_errorPorvider = new System.Windows.Forms.ErrorProvider();

if (Text.Trim() == "")
{
switch (InputLanguage)
{
case InputLanguages.Farsi:
{
_errorPorvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleLeft );
_errorPorvider.SetError(this, string.Format("شما فیلد مربوط به {0} را پر نکرده اید", Caption));

break;
}

case InputLanguages.English:
{
_errorPorvider.SetIconAlignment(this, System.Windows.Forms.ErrorIconAlignment.MiddleRigh t);
_errorPorvider.SetError(this, string.Format("{0} field should not be empty", Caption));
break;
}
default:
break;
}
}
else
_errorPorvider.SetError(this, "");
}
}
protected override void OnValidated(EventArgs e)
{
base.OnValidated(e);

if (Text.Trim() != "")
{
switch (InputType)
{
case InputTypes.Currency:
{
long lngData = Convert.ToInt64(Text);

switch (InputLanguage)
{
case InputLanguages.Farsi:
{
Text = lngData.ToString("#,##0 ریال");
break;
}

case InputLanguages.English:
{
Text = lngData.ToString("#,##0 $");
break;
}
default:
break;
}

break;
}
default:
break;
}
}
}

protected override void OnEnter(EventArgs e)
{
base.OnEnter(e);

switch (InputType)
{
case InputTypes.Currency:
{
Text = Text.Replace(" ", "").Replace(",", "").Replace("ریال", "").Replace("$", "");
break;
}
default:
break;
}

if (Multiline)
{
SelectionStart = 0;
DeselectAll();
}
else
SelectAll();

switch (InputLanguage)
{
case InputLanguages.Farsi:
{
System.Windows.Forms.InputLanguage.CurrentInputLan guage = System.Windows.Forms.InputLanguage.FromCulture(_fa rsiCulture);
break;
}
case InputLanguages.English:
{
System.Windows.Forms.InputLanguage.CurrentInputLan guage = System.Windows.Forms.InputLanguage.FromCulture(_en glishCulture);
break;
}
default:
break;
}
}
#endregion

}
}