我目前的问题是我让用户使用像" MaxLimit"或类似的东西,应该代表货币价值。不幸的是,他们也希望拥有无限选项。
目前,基于较旧的代码,这是由输入999999999的用户表示的,这对我的口味有点野蛮,我想知道你如何建议代表浮动的无限值,这对用户来说很容易进入?
我最初的想法是在表格中添加一个额外的复选框列,类似于" Max Limit?"这将作为一个布尔值来表示没有限制,然后将下一列中的值保持为0并在比较的情况下跳过它。另一个想法是使用负值并通过仅比较值大于0来跳过正常验证。
我目前正在编码vb.net中的datagridview,它通过SQL保存数据。
答案 0 :(得分:0)
这是一个双重问题:
对于重复,“无限”或“无限”(∞)这两个词显然是最佳的。
但如何进入最佳状态并不是那么清楚。最终,您必须与您的客户解决此问题。
这是一个适用于鼠标的上下文菜单解决方案。我确信context-menue-key也可以工作,显然取决于你是否已经有了一个上下文菜单。
如果他们更喜欢键盘解决方案,那么分配键或FKey最适合他们。
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button != MouseButtons.Right) return;
if (e.RowIndex < 0 || e.ColumnIndex < 0) return;
var cell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
ContextMenu cm = new ContextMenu();
var cm1 = cm.MenuItems.Add("Infinity");
cm1.Click += (ss, ee) =>
{
dataGridView1.EndEdit();
cell.Value = float.PositiveInfinity;
};
cm.Show(dataGridView1, e.Location);
}
它会插入float.PositiveInfinty
值,这具有您真正想要的优势。 Otoh你必须测试如何处理它。在数字操作中,它应该可以正常工作,但是当它写入DBMS时,它可能不会......
在单元格中,您实际上会看到一个无限字符,虽然相当小: