Visual Studio 2005 предлагает 2 каждого элемента управления типа столбца в моем DataGridView - PullRequest
0 голосов
/ 10 декабря 2011

Я использую Visual Studio 2005 на Windows XP. Я не уверен, связаны ли эти проблемы или нет.

Когда я перетаскиваю новый DataGridView в мои Windows Forms и пытаюсь сделать один из столбцов checkBox, VS2005 дает мне ДВА каждого столбца на выбор типа:

TextBox
TextBox
CheckBox
CheckBox
ComboBox
ComboBox
etc
etc

Это нормально? Должен ли я использовать «CheckBox тип 1» или «тип 2»?

Кроме того,

Когда я делаю один из моих столбцов «checkBox», а затем пытаюсь его использовать, кажется, что checkBox продолжает снова включаться.

Я включаю его, а затем нажимаю на другой столбец или строку, и флажок остается включенным, как и должно быть.

Но если я выключу checkBox, а затем нажму на другой столбец или строку, флажок волшебным образом снова включается. А?

Я не могу найти в своем коде ничего, что говорит "включи его". И я никогда не подключал его напрямую к любому источнику данных.

Я что-то здесь упускаю?

1 Ответ

0 голосов
/ 11 декабря 2011

Обе эти проблемы очень странные. Я думаю, что существует либо сторонний элемент управления, либо пользовательский элемент управления, унаследованный от DataGridView, либо ваша установка Visual Studio повреждена.

Я бы порекомендовал взглянуть на файл формы designer.vb, чтобы увидеть, какой тип данных у DataGridView или что-то выглядит не совсем правильно.

Чтобы просмотреть файл designer.vb, выберите Show All Files в меню Project, затем разверните соответствующую форму и дважды щелкните файл designer.vb.

Вы также можете попасть в этот файл, щелкнув правой кнопкой мыши ссылку на DataGridView (или любой элемент управления) в коде формы (не дизайнере) и выбрав Go To Definition; это приведет вас в файл конструктора.

Если этот проект был перенесен из более ранней версии VB.Net, есть вероятность, что элементы формы сохраняются непосредственно в файле кода формы в регионе " Windows Form Designer generated code ". В этом случае будет работать второй способ получения определения элемента управления, описанный выше, или вы можете просто выполнить поиск имени элемента управления, начиная с верхней части файла.

В любом случае, как только вы получите определение элемента управления, оно должно выглядеть примерно так:

Private Sub InitializeComponent()
    Me.DataGridView1 = New System.Windows.Forms.DataGridView
    Me.Column1 = New System.Windows.Forms.DataGridViewCheckBoxColumn
    Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn
    CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit()
    Me.SuspendLayout()
    '
    'DataGridView1
    '
    Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
    Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2})
    Me.DataGridView1.Location = New System.Drawing.Point(68, 84)
    Me.DataGridView1.Name = "DataGridView1"
    Me.DataGridView1.Size = New System.Drawing.Size(240, 150)
    Me.DataGridView1.TabIndex = 0
    '
    'Column1
    '
    Me.Column1.HeaderText = "Column1"
    Me.Column1.Name = "Column1"
    '
    'Column2
    '
    Me.Column2.HeaderText = "Column2"
    Me.Column2.Name = "Column2"

    ... some additional stuff

    Me.Controls.Add(Me.DataGridView1)
    CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
    Me.ResumeLayout(False)
End Sub
Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
Friend WithEvents Column1 As System.Windows.Forms.DataGridViewCheckBoxColumn
Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn

Если типы данных отличаются от System.Windows.Forms, проблема заключается в этом компоненте.

Если типы данных одинаковы, вы можете попробовать несколько вещей:

1) Закройте решение и вручную очистите каталоги бинов, чтобы удалить все возможные запутанные ссылки. Затем снова откройте проект.

2) Если 1 не работает, как бы это ни было болезненно, я бы предложил удалить и переустановить visual studio (мне пришлось сделать это вчера для VS2010 из-за странного поведения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...