Не удается открыть конструктор формы - PullRequest
0 голосов
/ 24 марта 2020

В настоящее время я работаю над проектом с использованием MS VS 2017.

Мне уже удалось открыть конструктор и открыть формы раньше. Сейчас я пытаюсь открыть один и тот же файл, но все дизайнеры форм не могут быть открыты. Но проект работает без сбоев, и я могу редактировать код.

Я попробовал то, что предложили другие, такие как очистка и сборка решения, а также удаление подпапки obj, однако ни один из них не помог мне. Что мне делать?

Это то, что я получаю каждый раз, когда пытаюсь открыть конструктор:

The designer could not be shown for this file because none of the classes within it can be designed. 

at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at
Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload) 

enter image description here

Это код формы, которую я пытаюсь открыть:

Public Class frmLogin

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Application.Exit()
    End Sub

    Private Sub lblExit_Click_1(sender As Object, e As EventArgs) Handles lblExit.Click
        If (MessageBox.Show("Are you sure to Exit?", "Exit from the system", MessageBoxButtons.YesNo, MessageBoxIcon.Information)) = DialogResult.Yes Then
            Application.Exit()
        End If
    End Sub

    Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
        frmDashboard.Show()
        Me.Hide()
    End Sub

End Class

1 Ответ

0 голосов
/ 24 марта 2020

Файл, который вам нужно посмотреть, это frmLogin.Designer.vb в каталоге вашего проекта. Вы можете увидеть это, щелкнув правой кнопкой мыши (в Visual Studio), например, «btnLogin» в коде, который вы разместили выше, затем «Go В реализацию». Или просто используйте File Explorer и откройте файл с помощью NotePad, чтобы увидеть его внутри.

Здесь хранится дизайн вашей формы. Файл содержит автоматически сгенерированный код и данные для вашей формы, и кажется, что он каким-то образом поврежден, возможно, он был случайно отредактирован.

Я понятия не имею, как на самом деле выглядит frmLogin, но вот frmLogin.Designer. VB я только что создал, используя имена в вашем коде;

Я предлагаю вам сравнить содержимое вашего файла с примером ниже, который должен привести к источнику вашей проблемы:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmLogin
Inherits System.Windows.Forms.Form

'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    Try
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
    Finally
        MyBase.Dispose(disposing)
    End Try
End Sub

'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.  
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
    Me.btnCancel = New System.Windows.Forms.Button()
    Me.btnLogin = New System.Windows.Forms.Button()
    Me.lblExit = New System.Windows.Forms.Label()
    Me.SuspendLayout()
    '
    'btnCancel
    '
    Me.btnCancel.Location = New System.Drawing.Point(310, 130)
    Me.btnCancel.Name = "btnCancel"
    Me.btnCancel.Size = New System.Drawing.Size(107, 43)
    Me.btnCancel.TabIndex = 0
    Me.btnCancel.Text = "Cancel"
    Me.btnCancel.UseVisualStyleBackColor = True
    '
    'btnLogin
    '
    Me.btnLogin.Location = New System.Drawing.Point(310, 192)
    Me.btnLogin.Name = "btnLogin"
    Me.btnLogin.Size = New System.Drawing.Size(107, 48)
    Me.btnLogin.TabIndex = 1
    Me.btnLogin.Text = "Log in"
    Me.btnLogin.UseVisualStyleBackColor = True
    '
    'lblExit
    '
    Me.lblExit.AutoSize = True
    Me.lblExit.Location = New System.Drawing.Point(233, 130)
    Me.lblExit.Name = "lblExit"
    Me.lblExit.Size = New System.Drawing.Size(24, 13)
    Me.lblExit.TabIndex = 2
    Me.lblExit.Text = "Exit"
    '
    'frmLogin
    '
    Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    Me.ClientSize = New System.Drawing.Size(800, 450)
    Me.Controls.Add(Me.lblExit)
    Me.Controls.Add(Me.btnLogin)
    Me.Controls.Add(Me.btnCancel)
    Me.Name = "frmLogin"
    Me.Text = "frmLogin"
    Me.ResumeLayout(False)
    Me.PerformLayout()

End Sub

Friend WithEvents btnCancel As Button
Friend WithEvents btnLogin As Button
Friend WithEvents lblExit As Label
End Class

Удачи!

...