xls in DataGridView
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 116 Antworten in diesem Thema. Der letzte Beitrag () ist von guccini.
-
-
-
jedes mal wenn ich in der listbox eine xls-datei ancklicke wird ein neuer prozess geöffnet
hab noch ein screen von Taskmanager gemacht
das ist der code:
VB.NET-Quellcode
- Imports System.Runtime.InteropServices
- Imports System.Threading
- Imports System.IO
- Public Class Form16
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Public Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
- End Function
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
- End Function
- <DllImport("user32.dll", SetLastError:=True)> _
- Private Shared Function IsWindowVisible(ByVal hWnd As IntPtr) As <MarshalAs(UnmanagedType.Bool)> Boolean
- End Function
- Private Const WM_SYSCOMMAND As Integer = 274
- Private Const SC_MAXIMIZE As Integer = 61488
- Private Sub Form16_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- Dim ordner As New IO.DirectoryInfo("C:\Temp\")
- Dim ordnerfile() As IO.FileInfo
- Dim fileInFolder As IO.FileInfo
- ordnerfile = ordner.GetFiles("*.xls")
- For Each fileInFolder In ordnerfile
- ListBox1.Items.Add(fileInFolder.FullName)
- Next
- End Sub
- Dim Endung As String
- Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
- Dim Datei As New IO.FileInfo(CStr(ListBox1.SelectedItem.ToString))
- Dim Endung As String = Datei.Extension
- If (Me.ListBox1.SelectedItems.Count = 0) Then
- MsgBox("Datei Wählen!", MsgBoxStyle.Critical, "Error")
- ElseIf Endung = ".xls" Then
- Dim proc As Process = Process.Start(ListBox1.SelectedItem.ToString)
- proc.WaitForInputIdle()
- SetParent(proc.MainWindowHandle, Me.Panel1.Handle)
- SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, IntPtr.Zero)
- End If
- End Sub
- End Class
-
Naja weil du jedesmal wenn du durch einen Klick SelectedIndexChanged aufrufst Process.Start(ListBox1.SelectedItem.ToString) aufgerufen wird.
Du musst darauf reagieren wenn schon eine Instanz der Excel.exe läuft und diese vorher beenden.
Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang. -
-
Naja die Process-Klasse liefert dir alles was du brauchst.
msdn.microsoft.com/de-de/libra…cs.Process(v=vs.110).aspx
aja:
was ist das denn?
Option Strict auf ON
Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang. -
Option Strict ist auf ON,
process zu beenden komme nicht ganz klar,soll ja beim selektieren einer anderer datei ausgelöst werden
VB.NET-Quellcode
- Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
- Dim Datei As New IO.FileInfo(ListBox1.SelectedItem.ToString)
- Dim Endung As String = Datei.Extension
- If (Me.ListBox1.SelectedItems.Count = 0) Then
- MsgBox("Datei Wählen!", MsgBoxStyle.Critical, "Error")
- ElseIf Endung = ".xls" Then
- Dim proc As Process = Process.Start(ListBox1.SelectedItem.ToString)
- proc.WaitForInputIdle()
- SetParent(proc.MainWindowHandle, Me.Panel1.Handle)
- SendMessage(proc.MainWindowHandle, WM_SYSCOMMAND, CType(SC_MAXIMIZE, IntPtr), IntPtr.Zero)
- End If
- End Sub
-
Ich habe das bei mir unter Excel 2013 probiert.
Ich muss die Programmausführung solange unterbrechen, bis Excel vollständig gestartet ist. Dann kann ich Excel im Panel anzeigen.
Also ziemlich sinnlos
Ich würde die Excel Tabelle entweder in einem neuen DGV anzeigen, oder einfach Excel extern starten. -
das wollte ich vermeiden excel ausserhalb zu starten,
habe noch das im visier edrawsoft.com/host-multiple-excel-instances.php
was meint ihr?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „guccini“ ()
-
-
-
-
Danke dir HamburgerJJ....funktioniert super......habe noch eine suche hinzugefügt, würde gerne noch in der dgv nach "Artikelnummer" bzw. "Zeichnungsnummer" suchen,leider kommt es zu fehlern, habe das so gemacht:
VB.NET-Quellcode
- Private Sub TextBox101_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox101.TextChanged
- If Not TextBox101.Text = "" AndAlso Not ComboBox8.Text = "" Then
- DataGridView1.DataSource.Filter = ComboBox8.Text & " Like '%" & TextBox101.Text & "%'"
- Else : DataGridView1.DataSource.Filter = ""
- End If
- End Sub
-
Zunächstmal solltest du Option Strict On! machen.
Das lehrt dich, zu erkennen, welchen Datentyp Dgv.DataSource hat, und anschließend vlt. nach Objekten ausschau halten, deren Datentyp es auch vorsieht, dass ein Filter gesetzt wird.
-
-
überprüfe das nochmal - zb diese Zeile
guccini schrieb:
-
-
-
msdn.microsoft.com/de-de/libra…rce.filter(v=vs.110).aspx
Was mich aber mehr erschüttert ist die Tatsache das da anscheinend TextBox101 gibt. Da würd ich mal am Aufbau deines Projekts arbeiten
wenn dem so ist.....Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang. -
ist das wichtig?
Snaptu schrieb:
Was mich aber mehr erschüttert ist die Tatsache das da anscheinend TextBox101 gibt. Da würd ich mal am Aufbau deines Projekts arbeiten
wenn dem so ist.....
ich versuche gerade ein problem zu lösen, man sollte auch in der lage sein es zu erklären statt nur zu verlinken, jeder hat mal klein angefangen oder?
-
Ähnliche Themen
-
coolerj - - Sonstige Problemstellungen
-
5 Benutzer haben hier geschrieben
- guccini (57)
- HamburgerJungeJr (38)
- ErfinderDesRades (12)
- xtts02 (7)
- Snaptu (3)