kann nicht kopieren und einfügen von datagridview
Habe ich eine einfache leere windows form als ein test-Projekt
und ein datagridview
und eine Abfrage zum füllen der datagridview
in diesem test-Projekt. Ich kann markieren Sie alle Spalten und Zeilen
klicken Sie auf STRG + C
öffnen Sie excel
klicken Sie dann auf Strg + V
und die Daten sind da.
aber auf ein Programm, das ich geerbt von jemandem in der Firma
Ich habe eine ähnliche Daten-grid-view. aber ich kann nicht kopieren und einfügen
wie kann ich identifizieren, was ist hier der Unterschied?
Ich überprüfe die Daten der grid-Ansicht Eigenschaften für beide test-Projekt und das Programm, das ich geerbt. beides hat dieselbe folgende:
1. der read only = false
2. die copyclipboardmode = EnableWithAutoHeaderText
was könnte mich davon abhalten, kopieren Sie diesen Wert einfügen?
in das ererbte Programm der einzige Weg, um zu kopieren-einfügen, tritt durch Doppelklick auf die Zelle und kopieren, aber. diese Grenzen, die ich zum kopieren einer Zelle zu einem Zeitpunkt statt mehrerer Zelle
bitte beraten?
danke
dies ist der code-Schnipsel aus meinem test-Projekt
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
DataGridView1.Rows.Add(New String() {"TEST", "TEST2", "TEST3"})
End Sub
Dies ist die frmForm.Designer.vb auf Wunsch QuickDanger
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmForm
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.dgvSpecials = New System.Windows.Forms.DataGridView()
Me.btnCreate = New System.Windows.Forms.Button()
Me.PartCode = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.PDF = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.SLDDRW = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.SLDPRT = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.BasePartCode = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.TEMPLATESLDDRW = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.TEMPLATESLDPRT = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.TEMPLATEDRWFILE = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.TEMPLATEPRTFILE = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.MakeSpecial = New System.Windows.Forms.DataGridViewCheckBoxColumn()
CType(Me.dgvSpecials, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'dgvSpecials
'
Me.dgvSpecials.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvSpecials.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.PartCode, Me.PDF, Me.SLDDRW, Me.SLDPRT, Me.BasePartCode, Me.TEMPLATESLDDRW, Me.TEMPLATESLDPRT, Me.TEMPLATEDRWFILE, Me.TEMPLATEPRTFILE, Me.MakeSpecial})
Me.dgvSpecials.Dock = System.Windows.Forms.DockStyle.Fill
Me.dgvSpecials.Location = New System.Drawing.Point(0, 0)
Me.dgvSpecials.Name = "dgvSpecials"
Me.dgvSpecials.Size = New System.Drawing.Size(917, 246)
Me.dgvSpecials.TabIndex = 0
'
'btnCreate
'
Me.btnCreate.Dock = System.Windows.Forms.DockStyle.Bottom
Me.btnCreate.Location = New System.Drawing.Point(0, 246)
Me.btnCreate.Name = "btnCreate"
Me.btnCreate.Size = New System.Drawing.Size(917, 30)
Me.btnCreate.TabIndex = 1
Me.btnCreate.Text = "Create"
Me.btnCreate.UseVisualStyleBackColor = True
'
'PartCode
'
Me.PartCode.HeaderText = "Part Code"
Me.PartCode.Name = "PartCode"
Me.PartCode.ReadOnly = True
Me.PartCode.Width = 200
'
'PDF
'
Me.PDF.HeaderText = "PDF"
Me.PDF.Name = "PDF"
Me.PDF.ReadOnly = True
'
'SLDDRW
'
Me.SLDDRW.HeaderText = "SLDDRW"
Me.SLDDRW.Name = "SLDDRW"
Me.SLDDRW.ReadOnly = True
'
'SLDPRT
'
Me.SLDPRT.HeaderText = "SLDPRT"
Me.SLDPRT.Name = "SLDPRT"
Me.SLDPRT.ReadOnly = True
'
'BasePartCode
'
Me.BasePartCode.HeaderText = "Base Part"
Me.BasePartCode.Name = "BasePartCode"
Me.BasePartCode.ReadOnly = True
'
'TEMPLATESLDDRW
'
Me.TEMPLATESLDDRW.HeaderText = "DRW Template"
Me.TEMPLATESLDDRW.Name = "TEMPLATESLDDRW"
Me.TEMPLATESLDDRW.ReadOnly = True
'
'TEMPLATESLDPRT
'
Me.TEMPLATESLDPRT.HeaderText = "PRT Template"
Me.TEMPLATESLDPRT.Name = "TEMPLATESLDPRT"
'
'TEMPLATEDRWFILE
'
Me.TEMPLATEDRWFILE.HeaderText = "Column1"
Me.TEMPLATEDRWFILE.Name = "TEMPLATEDRWFILE"
Me.TEMPLATEDRWFILE.ReadOnly = True
Me.TEMPLATEDRWFILE.Visible = False
'
'TEMPLATEPRTFILE
'
Me.TEMPLATEPRTFILE.HeaderText = "Column1"
Me.TEMPLATEPRTFILE.Name = "TEMPLATEPRTFILE"
Me.TEMPLATEPRTFILE.ReadOnly = True
Me.TEMPLATEPRTFILE.Visible = False
'
'MakeSpecial
'
Me.MakeSpecial.HeaderText = "MakeSpecial"
Me.MakeSpecial.Name = "MakeSpecial"
'
'frmForm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(917, 276)
Me.Controls.Add(Me.dgvSpecials)
Me.Controls.Add(Me.btnCreate)
Me.Name = "frmForm"
Me.Text = "frmForm"
CType(Me.dgvSpecials, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents dgvSpecials As System.Windows.Forms.DataGridView
Friend WithEvents btnCreate As System.Windows.Forms.Button
Friend WithEvents PartCode As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents PDF As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents SLDDRW As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents SLDPRT As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents BasePartCode As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents TEMPLATESLDDRW As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents TEMPLATESLDPRT As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents TEMPLATEDRWFILE As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents TEMPLATEPRTFILE As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents MakeSpecial As System.Windows.Forms.DataGridViewCheckBoxColumn
End Class
Hier ist der tatsächliche frmForm.VB
SldWorks ist Mitglied von SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.sldworks
Public Class frmForm
Dim App As SldWorks
Public Sub Setup(App As SldWorks, Arr As ArrayList)
End Sub
Private Sub btnCreate_Click(sender As Object, e As EventArgs) Handles btnCreate.Click
End Sub
End Class
- Haben Sie versucht, die
WithoutAutoHeaderText
? Hast du unter dieser thread? - Ist der Vorherige Entwickler highjacking die Kopie event irgendwo anders im code, und dann wird es behandelt, bevor das datagrid-Werte können gesendet werden an die Zwischenablage?
- Nein, copyclipboardmode Eigenschaften sind nicht festgelegt, irgendwo in den code. Eine neue Entdeckung, die ich gefunden ist, dass. er hat nicht datengebundene die Daten der grid-Ansicht. aber stattdessen hat er nur datagridview verwenden.Zeilen.add(New String() {PartCode, PDF, STRING1, STRING2}).
- Ich habe mein test-Projekt mit ähnlich .Zeilen.add(new String(){"TEST"}) und ich bin immer noch in der Lage, kopieren und einfügen auf meinem test-Projekt. Aber nicht auf das Programm, das ich geerbt.
- Ich würde sagen, die Strg+C umgegangen wird, irgendwo...
- Versuchen Sie, Entsendung frmForm.vb. Wenn Sie nicht wollen, zu posten den code, dann post alle subs Erklärung Zeilen... auch finde alle AddHandler event handling Erklärung.
- Ob Sie es glauben oder nicht, es gibt nur zwei subs Erklärung in form.vb
- Ich habe das aktuelle vb-Formular (nur die subs). Das ist alles. keine weiteren Angaben in das Formular ein
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass Sie müssen
MultiSelect
- Eigenschaft des DataGridView zutrue
Ich vermute, Sie haben festgelegt
ClipboardCopyMode
zuDisable
. Ändern Sie diese Eigenschaft auf alle anderen drei verfügbaren Optionen.Andere Entwickler verwenden Sie die Tastenkombination Strg+C für einige Tastenkombinationen in sein Projekt.
Wenn Sie überprüfen können, sein design,gehen Sie Bitte durch die Eigenschaft der Menüleiste->ShortcutKeys
Sieht es aus wie andere haben Erfolg mit hatte
ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
(siehe diese Frage ALSO). Wenn das nicht hilft, könnten Sie fügen Sie den designer-code für das dataGridView? (es findet sich in der Projekt-Datei [formname].Designer.vb)
Möglicherweise möchten Sie auch zu suchen, der code für Verweise auf diese Regelung, und stellen Sie sicher, dass die ursprünglichen Entwickler nicht ändern
ClipboardCopyMode
- Eigenschaft zur Laufzeit.Edit: Da keiner der Vorschläge scheinen zu funktionieren, Sie könnten "roll your own" version von copy/paste mit einem tab-delimited-format:
Hinweis: Diese kopiert alle Daten, nicht nur die markierten Zellen, aber Sie können es ändern, um nur ausgewählte Zellen.
Gelöst: dieses problem wird durch solidWorks.Interop.sldworks und die Anwendung wird in der Solidworks Umgebung
Ich habe gehört von anderen solidworks-Entwickler die Strg-C einfach weigerte zu arbeiten
Kopieren der Daten aus dem datagridview, wir sind immer mehrere Fehler. So, ich entwickelt habe folgenden code für meine Anwendung zu diesem Zweck wird mit Hilfe von QuickDanger von oben .