Visual Basic 2008 - Behöver support!

Permalänk
Medlem

Visual Basic 2008 - Behöver support!

Okej, vet att det finns delade åsikter om att programmera i Visual Studio, och att en del idiotförklarar alla som inte knackar sin kod i Assembly, men vafan, jag tänker inte bli en expert, jag behöver bara få till en funktion till mitt program.

Jag håller på med ett program som agerar som en panel där man kan samla sina favoritprogram, och sedan starta programmet för att enkelt komma åt dessa.

Så här långt har jag kommit:

[kod]

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Shell(TextBox1.Text)
End Sub

Private Sub TextBox1_textchanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
System.IO.File.WriteAllText("config1.txt", TextBox1.Text)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextBox1.Text = System.IO.File.ReadAllText("config1.txt")
End Sub

[/kod]

Denna kod fungerar fint, och låter användaren själv leta upp en fil, automatiskt skriva sökvägen i textbox1, spara till "config.txt" och sedan ladda denna config.txt till textbox1 vid start. Button1 kör sedan textbox1.text.

Till mitt problem

Jag vill använda samma tillvägagångsätt för att låta användaren sätta en bild till Button1.image, altså då låta användaren ändra utseendet på knappen.

Det verkar dock inte fungera. Inget händer.

Om någon är kunnig, är jag tacksam för hjälp, kan skicka hela koden, .projectfiler etc om det underlättar.

Tack på förhand

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Såhär hade jag gjort det:

Imports System.IO Public Class Form1 Dim imageurl as string Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.ShowDialog() imageurl = OpenFileDialog1.FileName TextBox1.Text = Path.GetFileName(imageurl) PictureBox1.ImageLocation = imageurl System.IO.File.WriteAllText("config1.txt", imageurl) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load imageurl = System.IO.File.ReadAllText("config1.txt") TextBox1.Text = Path.GetFileName(imageurl) PictureBox1.ImageLocation = imageurl End Sub End Class

Edit: du får även ha en kod för att verifiera vilka filändelser som är tillåtna.. Bara att googla eller bygga själv:)

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Men skapar inte det en klickbar bild? Jag vill ha en vanlig knapp = ingen bild > bara text, men som man kan sätta bild till.

Hursom, tack så mkt, fick en hel del klargjort.

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Missade den delen. Bara att byta ut picturebox1.imagelocation till button1.imagelocation så ska den fungera...

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Stort tack, och om jag nu inte har någon bild, kommer programmat att köras som vanligt, dvs ingen bild på knappen (bara text) ?

Eller ska jag använda en If sats, typ

If

Textbox1.text = "X"
Then
button1.imagelocation = (imageurl)
Else
Endif

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Beror ju på hur du bygger det. Du kan ju kolla om fiken existerar? Men nån funktion för att verifiera krävs! Annars blir det nog bara ett kryss..

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

"Det går inte att konvertera strängen C:\Users\Jonas\Pictures\samsung1 till typen Integer."

När jag kör din kod, hmmm

Kommer när jag väljer en bildfil i Objectfilebrowser

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Vilken rad får du den på? Jag körde koden utan problem..

EDIT: testa detta då:

Imports System.IO Public Class Form1 Dim imageurl As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click OpenFileDialog1.ShowDialog() imageurl = OpenFileDialog1.FileName TextBox1.Text = Path.GetFileName(imageurl) Button1.Image = New Bitmap(imageurl) System.IO.File.WriteAllText("config1.txt", imageurl) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load imageurl = System.IO.File.ReadAllText("config1.txt") TextBox1.Text = Path.GetFileName(imageurl) End Sub End Class

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

"Button1.ImageAlign = imageurl"
Där kommer felet. Imagelocation finns inte.

Om du har tid/lust kan du få min MSN för källkoden.

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Du skriver dock imagealign? :S Varför skulle imagealign vara imageurl?

Hur som helst funkar den senaste koden jag skrev för knappar

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

ImageLocation finns inte i"Formelbibloteket", sätter jag den till Button1.Image skriver den om till Imagealign när jag kör programmet...

VB 2008, inte VB6, ellerhur?

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

märkte det. Kollade inte det innan jag skrev. Kolla uppdaterade koden jag skrev!

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Woho! Funkar fint, nu måste jag bara fixa så att:

När imageurl har ett värde så är Textboxen för Namnet till knappen (som ställs in lika fint) = "Inget"

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Va? Det där jättekonstigt skrivet... Vill du att textboxen inte ska ha värde skriver du ju Textbox1.Text = String.Empty och byt ut mot button1 om du vill att den ska ha tom text

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

SKulle det funka med:

If Textbox1 = "Vad som helst" ->
Then Textbox2 = String.empty
Else
Endif

Dvs, när textbox1 har ett värde så ska textbox2's värde raderas, i detta fall altså namnet på knappen

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Såhär kan du göra det. Du anropar värdet på en textbox med .text

if textbox1.text ="Det du vill" then textbox2.text = string.empty

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem

Japp, fixade på likande vis

If Textbox1.textlenght = > 0 Then Textbox = (Nothing)

Visa signatur

AMD x2 5000+ @2.8GHZ -> 5400+//Gigabyte GA-MA78GM-S2H//
Corsair XMS2 2x1GB PC6400//
Gigabyte HD4850 512MB + Acelero s1 v2

Permalänk

Ta bort "= tecknet" dock... Textbox1.Textlength => 0 är alltid sant!

Isf kan du lika gärna skriva textbox2.text = string.empty direkt...

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Behöver hjälp

Hej Allihop!

Har ett problem med ett script här.

Private Sub ListView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
BtnDelete.Enabled = True
BtnEdit.Enabled = True

rs = New ADODB.Recordset
With rs
.Open("Select * from Info where Kund like '" & ListView1.FocusedItem.Text & "'", cn, 2, 3)
txtkund.Text = .Fields("Kund").Value
DateTimePicker1.Value = .Fields("Datum").UnderlyingValue
txttimmar.Text = .Fields("Timmar").Value
txtstyck.Text = .Fields("Styck").Value
txtapris.Text = .Fields("A-pris").Value
txtfrakt.Text = .Fields("Frakt").Value
txtatgard.Text = .Fields("Åtgärd").Value
txttotalt.Text = .Fields("Totalt").Value

cbstatus.Text = .Fields("Status").Value

End With

End Sub

Problemet kommer då vid "cbstatus.Text = .Fields("Status").Value" I och med att det är en combobox istället för en textbox så verkar jag inte kunna få fram datan via en Listview jag har skapat. Jag får fram all text på raden jag klickar på i listview men comboboxen vill inte ändras till det som står i Listviewn.
Hoppas ni förstår min grymma förklaring! hehe

Tack på förhand!

Permalänk
Medlem

testa comboBox.Items.Add()

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk

Ne, fungerar ej... :S