gpt4 book ai didi

c# - DataGridView 列中的数字文本框

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:39 25 4
gpt4 key购买 nike

我有一个 DataGridView。我希望它的第一列或任何所需的列(其中包含 textboxes)为 NUMERIC ONLY。我目前正在使用此代码:

private void dataGridViewItems_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridViewItems.CurrentCell.ColumnIndex == dataGridViewItems.Columns["itemID"].Index)
{
TextBox itemID = e.Control as TextBox;
if (itemID != null)
{
itemID.KeyPress += new KeyPressEventHandler(itemID_KeyPress);
}
}
}

private void itemID_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}

此代码有效,但问题是所有列中的所有 textboxes 都只获取数字。

最佳答案

我自己想通了:)

刚刚删除了解决我的问题的功能开始时的先前事件。

private void dataGridViewItems_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.KeyPress -= new KeyPressEventHandler(itemID_KeyPress);//This line of code resolved my issue
if (dataGridViewItems.CurrentCell.ColumnIndex == dataGridViewItems.Columns["itemID"].Index)
{
TextBox itemID = e.Control as TextBox;
if (itemID != null)
{
itemID.KeyPress += new KeyPressEventHandler(itemID_KeyPress);
}
}
}

private void itemID_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}

关于c# - DataGridView 列中的数字文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14542470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com