标签: datagridviewcolumn

DataGridView可调整大小的列,但最后一列无法调整大小?

For c = 0 To grd.Columns.Count - 1
    grd.Columns(c).Resizable = DataGridViewTriState.True
Next c

这允许我的DataGridView中的所有列都可以调整大小,除了最后一列.为什么?我DO得到的小调整大小鼠标指针......但你只能使列SMALLER,从来没有WIDER.

(如果我尝试使用VB.net IDE将所有列设置为Resizable,则会出现同样的问题)

我在这做错了什么?我不应该能够调整我想要的任何列,不管更大还是更小?

.net vb.net datagridview datagridviewcolumn winforms

6
推荐指数
1
解决办法
2108
查看次数

Datagridview删除所有列

是否可以在单个匹配中从数据网格中删除所有列?

我知道我可以循环并逐个删除它们,或删除整个事物并创建它.

但是可以简单地清除列并将网格留在原位,以便用户可以重新开始.即把它恢复到原来的状态.

好的,这是我的代码

private void PopulateGrid()
    {
        UserVGrid.AutoGenerateColumns = false;
        UserVGrid.Columns.Clear();
        List<string> _values = populate.GetVaribles;
        foreach (var line in _values)
        {
            if (!line.Contains("Startind"))
            {
                string[] newline = line.Split('=');
                DataGridViewColumn newColumn = new DataGridViewTextBoxColumn(); 
                newColumn.Name = newline[0]; 
                newColumn.HeaderText = newline[1]; 
                newColumn.ToolTipText = newline[2]; 
                UserVGrid.Columns.Add(newColumn); 

            }
        }
Run Code Online (Sandbox Code Playgroud)

所以我们假设_values有apple,pear作为值

运行此方法一次,我得到一个数据网格,其中包含两个名为apple和pear的列.

这次运行它第二次使用_values包含char,table.
我最终得到了4支苹果,梨,椅子和桌子.我想要的是它第二次运行它清除网格然后应用新的colums.

干杯

亚伦

c# datagridview datagridviewcolumn

5
推荐指数
1
解决办法
4万
查看次数

验证单个DataGridView列

如何在DataGridView中的特定DataGridViewTextBoxColumn列上执行验证,以便用户需要在其中输入值?

c# datagridview datagridviewcolumn winforms

5
推荐指数
1
解决办法
5409
查看次数

在DataGridViewColumn中混合单元格类型

是否可以在单个DataGridViewColumn中同时包含DataGridViewComboBoxCells和DataGridViewTextBoxCells?或者我绝对限制每列有一种类型?

.net datagridview datagridviewcolumn winforms

5
推荐指数
1
解决办法
7539
查看次数

DataGridView中的计算列绑定到一个对象

我的UI由一个AutoCreateColumns= false绑定到业务对象列表的datagridview()组成.让我们假设我的对象包含2列 - 价格和数量 - 我想在我的网格中添加一个新列 - 总计 - 将计算哪个值 - 价格*数量,不修改我的业务对象.

可能吗?

c# datagridview datagridviewcolumn winforms

5
推荐指数
1
解决办法
5773
查看次数

获取和设置 DataGridView 的排序(列和升序/降序)

我有一个小问题。我需要保存排序(按列和升序或降序)并在程序下次启动时加载它。获取当前选定的列没有问题我通过以下方式执行此操作

    private int GetSortColumn()
    {
        DataGridViewColumn sortColumn = this.dataGridView.SortedColumn;
        if (sortColumn != null)
        {
            Properties.Settings.Default.sortingColumnSortMode = dataGridView.SortOrder;
            return sortColumn.Index;
        }
        else
            //error
            return -1;
    }
Run Code Online (Sandbox Code Playgroud)

并将数据保存在我的设置中。设置这个属性也没有问题:

    private void SetSortColumn(int indexOfColumn)
    {
        if (indexOfColumn != null && indexOfColumn != -1)
        {
            this.dataGridView.Sort(this.dataGridView.Columns[indexOfColumn], ListSortDirection.Descending);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我还需要保存并设置升序或降序属性。我该怎么做呢?有没有办法使用 dataGridView.SortedColumn 获取 ListSortDirection?或者如果dataGridView按升序或降序排序,是否有更好的解决方案?

谢谢和问候!礼金

c# sorting datagridview datagridviewcolumn

5
推荐指数
2
解决办法
9328
查看次数

隐藏/禁用 DataGridView 列/行调整行大小

有没有人知道在调整 datagridview 行和列大小时禁用出现的行的方法。这条线经常闪烁,所以我宁愿自己画一条实线并禁用默认的实线。

在此处输入图片说明

我希望通过绘制自己的粗线(我已经完成),它会绘制在默认闪烁的顶部,但不幸的是,两条线都出现了,闪烁的线通常出现在我的实线的右侧或左侧. 我不认为它是相关的,但是用于绘制下面的线的代码。

Private Sub DataGridView1_Paint(sender As Object, e As PaintEventArgs) Handles DataGridView1.Paint

    If resizingColumns = True Then

        Dim penRed As Pen
        penRed = New Pen(color.Red, 3)

        Dim cursorPosition As Integer = Me.DataGridView1.PointToClient(New Point(Cursor.Position.X, Cursor.Position.Y)).X

        e.Graphics.DrawLine(penRed, cursorPosition, 0, cursorPosition, Me.DataGridView1.Size.Height)

    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一另一种选择(我真的不想这样做)是将 AllowUserToResizeColumns 设置为 false(这也会隐藏列大小调整线),然后使用鼠标事件以编程方式调整列大小。

任何帮助或指导将不胜感激。

vb.net datagridview datagridviewcolumn vb.net-2010

5
推荐指数
1
解决办法
326
查看次数

如何设置 DataGridViewCell 中字符串的方向?

如何设置RightToLeftDataGridViewColumn 中特定 DataGridViewCell 的属性?

.net c# datagridview datagridviewcolumn winforms

4
推荐指数
1
解决办法
5147
查看次数

找不到DataGridView的列名

为什么我没有找到MyEntity和FullName列的列名称的异常?虽然我看到列名在UI中显示.

InitializeComponent();

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
    int rowIndex = dataGridView1.Rows.IndexOf(row);
    myObject = dataGridView1.Rows[rowIndex].Cells["MyEntity"].Value as IEntityObject;
    fileName = dataGridView1.Rows[rowIndex].Cells["FullName"].Value.ToString();       
}
Run Code Online (Sandbox Code Playgroud)

c# datagridview datagridviewcolumn

4
推荐指数
1
解决办法
8136
查看次数

在 datagridview 中屏蔽密码列

我在屏蔽密码列时遇到问题。下面的代码有效,但它不按我想要的方式工作。在编辑它时会屏蔽密码,但是当我完成并继续下一个 datagridviewcell 密码时,密码变得可见。

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{            
        if (  dataGridView1.CurrentCell.ColumnIndex == 5 || dataGridView1.CurrentCell.ColumnIndex == 10)//select target column
        {
            TextBox textBox = e.Control as TextBox;
            if (textBox != null)
            {
                textBox.UseSystemPasswordChar = true;
            }                
        }
        var txtBox = e.Control as TextBox;
        txtBox.KeyDown -= new KeyEventHandler(underlyingTextBox_KeyDown);
        txtBox.KeyDown += new KeyEventHandler(underlyingTextBox_KeyDown);
}
Run Code Online (Sandbox Code Playgroud)

同样在编辑模式下,它应该只屏蔽索引为 5 && 10 的列,但是它屏蔽了所有列。我无法解决这些问题,任何帮助都会很棒。

c# passwords datagridviewcolumn winforms datagridtextcolumn

4
推荐指数
2
解决办法
2万
查看次数