Datagridview 列中的掩码值

发布于 2024-11-16 09:45:26 字数 146 浏览 3 评论 0原文

如何在 Windows 窗体应用程序中“屏蔽”datagridview 的值?例如,如何限制 datagridviewtextboxcolumn 列中的值,使其不大于给定数字? (即该列中的单元格值 < 9.6) 我在运行时以编程方式构建我的 datagridview 。

How can I "mask" the values of a datagridview in a windows forms application? In example, how can I limit the value in a column datagridviewtextboxcolumn so that is not bigger than a given number? (i.e. cell value in that column < 9.6)
I build my datagridview programmatically at runtime.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

┾廆蒐ゝ 2024-11-23 09:45:26

您可以在 CellEndEdit 事件处理程序上使用 if()

You can just use if() on CellEndEdit event handler

倾城泪 2024-11-23 09:45:26

如果可能的话,最简单的方法是在实体级别验证值。

例如,假设我们有以下简化的 Foo 实体;

public class Foo
{
    private readonly int id;
    private int type;
    private string name;

    public Foo(int id, int type, string name)
    {
        this.id = id;
        this.type = type;
        this.name = name;
    }

    public int Id { get { return this.id; } }

    public int Type
    {
        get
        {
            return this.type;
        }
        set
        {
            if (this.type != value)
            {
                if (value >= 0 && value <= 5) //Validation rule
                {
                    this.type = value;
                } 
            }
        }
    }

    public string Name
    {
        get
        {
            return this.name;
        }
        set
        {
            if (this.name != value)
            {
                this.name = value;
            }
        }
    }
}

现在我们可以将 List绑定到 DataGridView 上。 foos,我们将有效屏蔽“Type”DataGridViewColumn中的任何输入。

如果这不是有效路径,则只需处理 CellEndEdit 事件并验证输入即可。

The easiest way to do this, if possible, is to validate the value at the entity level.

For instance, say we have the following simplified Foo entity;

public class Foo
{
    private readonly int id;
    private int type;
    private string name;

    public Foo(int id, int type, string name)
    {
        this.id = id;
        this.type = type;
        this.name = name;
    }

    public int Id { get { return this.id; } }

    public int Type
    {
        get
        {
            return this.type;
        }
        set
        {
            if (this.type != value)
            {
                if (value >= 0 && value <= 5) //Validation rule
                {
                    this.type = value;
                } 
            }
        }
    }

    public string Name
    {
        get
        {
            return this.name;
        }
        set
        {
            if (this.name != value)
            {
                this.name = value;
            }
        }
    }
}

Now we can bind to our DataGridView a List<Foo> foos and we will be effectively masking any input in the "Type" DataGridViewColumn.

If this isn't a valid path, then simply handle the CellEndEdit event and validate the input.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文