DataGridViewにCurrencyTextBoxが必要です。インターネットを検索して、このソリューションを見つけます[^] しかし、これはdataGridView Cell Leaveイベントの場合に役立ちます。textchangeにコンマ区切り文字が必要です。ただし、この目的のためにこのソースを記述します。
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox txt_edit = e.Control as TextBox;
if (txt_edit != null)
{
txt_edit.TextChanged += new EventHandler(txt_edit_TextChanged);
}
}
private void txt_edit_TextChanged(object sender, EventArgs e)
{
TextBox txt = (TextBox) sender;
string str = txt.Text;
str = str.Replace(",", "");
int len = str.Length;
if (len > 3)
{
str = str.Insert(len - 3, ",");
len = len - 3;
while (len > 3)
{
str = str.Insert(len - 3, ",");
len = len - 3;
}
}
dataGridView1.EndEdit();
dataGridView1.CurrentRow.Cells[0].Value = str;
dataGridView1.BeginEdit(false);
}
プログラムを実行して番号を入力すると、このソースは最初の3桁で正しく機能し、このエラーをコード化する4番目の番号を入力するまで次のようになります。
なぜこのエラーコード?問題を解決するためのより良い方法はありますか?tnx