【问题标题】:Name a column in datagridview在datagridview中命名一列
【发布时间】:2012-07-29 23:16:00
【问题描述】:

我想出了以下代码,它根据 textbox1 中的用户输入添加列数,但是如何为这些列添加名称? (添加的列的名称应为 A1、A2、A3.......在最顶行)

Dim t As Integer
t = Val(TextBox1.Text)
For i = 1 To t
    Form2.DataGridView1.ColumnCount = i
Next

我们还可以冻结 datagridview 中的特定单元格,即用户无法编辑的单元格吗?

【问题讨论】:

    标签: vb.net datagridview


    【解决方案1】:

    试试这个

    DataGridView1.Columns(i).Name = String.Format("A{0}", i)
    

    一旦您有权访问 Columns(i),您就可以从智能感知中查看可用属性

    DataGridView1.Columns(0).Frozen = True;
    

    【讨论】:

    • VB.net 中的数组表示为 (i) 而不是 [i]
    • 没关系,就标题而言,+1 你的答案是正确的,听起来他想冻结单个单元格而不是行或列。
    • 非常感谢您抽出宝贵时间。我希望我可以将 2 个答案标记为“已接受”。结合您的回答和 Mark Hall 的回答解决了我的问题。
    • @codingbiz:这适用于我的示例,但对于我的主要项目,它抛出以下异常:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引。有什么我想念的吗?
    • @mrn 尝试将DataGridView1.Columns(i).Name 更改为DataGridView1.Columns(i-1).Name。索引从零开始,您从 1 开始,因此超出了数组的范围。
    【解决方案2】:

    DataGridView 仅具有冻结行或列的方法,为了阻止编辑特定单元格,您可以尝试为 CellBeginEdit 事件添加处理程序,然后检查您想要的单元格的行和列阻止编辑然后取消事件。

    类似这样的:

    Private Sub DataGridView1_CellBeginEdit(sender As Object, e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
        If e.ColumnIndex = 0 And e.RowIndex = 0 Then
            e.Cancel = True
        End If
    End Sub
    

    【讨论】:

    • 此论坛应允许用户将 2 个答案标记为“已接受”。非常感谢您的时间和帮助。
    【解决方案3】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多