Hei!
Yleisön pyynnöstä vaihdoin Ferrarin Fiiattiin.. Ongelmia tulee kerta toisensa jälkeen. No yksi ongelma jonka kanssa pähkäilin eilen koko illan. :D
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sana As String sana = "*" & TextBox1.Text & "*" If ListBox1.FindString(sana) > -1 Then 'tämä ei nyt löydä koskaan mitään, mutta jos jättää "*" merkit pois niin silloin se löytää vain juuri samalla lailla kirjoitetut kokonaiset sanat MsgBox("Löydetty!") End If End Sub
VB6:lla pystyi käyttämään haun yhteydessä "*" joka tarkoitti mitä vain. Kuinka tämä onnistuu .NET puolella?
Kiitos
EDIT: Siitä syystä viestin aihe on kyseinen, koska näitä kysymyksiä tulee varmasti vielä eteen.
Moi Tumppu!
tämä toimii...
Sub Button6_Click(sender As Object, e As EventArgs) For i As Integer = 0 To listBox1.Items.Count -1 Dim lstItem As String = CType(listBox1.Items(i),String) If lstItem.IndexOf(textBox1.Text) > -1 Then MsgBox("Löydetty!"): Exit For End If Next End Sub
Moi taas Tumppu!
Mikäli haluat välttämättä käyttää korvausmerkkejä (Wildcard characters) niin...
Sub Button1_Click(sender As Object, e As EventArgs) For i As Integer = 0 To listBox1.Items.Count -1 If CType(listBox1.Items(i), String) _ Like "*" & textBox1.Text & "*" Then 'Like "?" & textBox1.Text & "?" Then MsgBox("Löydetty!"): Exit For End If Next End Sub
Kiitos Nea! Seuraava ongelma. .NET osaa hienosti avata GIF kuvia, jotka näkyvät transparenttinakin. Nyt kuitenkin jos piirrän Pictureboxin jonka päälle toisen pictureboxin jossa on GIF kuva, niin päälimmäisen kuvan läpinäkyvyys näkyy formista. Eli miten saisi kuvan läpinäkyvän osuuden näkymään alla olevasta kuvasta? Tack!
Sain itseratkaistua viimein ongelman.
Picturebox2.Parent=Picturebox1
Nyt picturebox2 läpinäkyvä osan alta näkyy picturebox1:n kuva.
Kuinkas onnistuu jos piirtää pictureboxiin koodilla:
Dim pTiili As Graphics = PictureBox2.CreateGraphics
niin kopioimaan piirretyn kuvan toiseen pictureboxiin?
Entä miten saan piirretyn kuvan jäämään pictureboxiin kun sen poistaa näkyvistä?
Elikkä tarkoituksena kokeilla tehdä pelikenttä jota päivitetään tietyn väliajoin, mutta kun kentän kokoa kasvattaa paljon niin se vilkkuu ikävästi. Kenttä piirretään 32x32 tileistä. Vai onko parempaa vaihtoehtoa?
Kannattanee varmaan tehdä oma kontrolli peliä varten ja ainakin käyttää tuplapuskurointia.
Public Class Peli Inherits System.Windows.Forms.Control Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) Dim Puskuri As New Bitmap(640, 480) 'Puskuri Dim g As Graphics = Graphics.FromImage(Puskuri) 'Grafiikka muuttuja 'Piirtäminen g.FillEllipse(Brushes.Gold, 10, 40, 29, 93) 'Piirretään valmis kuva ruudulle e.Graphics.DrawImage(Puskuri, 0, 0) 'Suoritetaan ylikirjoittamaton osa MyBase.OnPaint(e) End Sub End Class
Tuplapuskuroitu kuva on sitten helpompi kopioida toiseen paikkaan tai vaikkapa tallentaa levylle
Dim Puskuri As New Bitmap(640, 480) 'Puskuri Dim g As Graphics = Graphics.FromImage(Puskuri) 'Grafiikka muuttuja 'Piirtäminen g.FillEllipse(Brushes.Gold, 10, 40, 29, 93) 'Piirretään kuva pictureboxiin PictureBox1.Image = Puskuri 'Kopioidaan se toiseen PictureBox2.Image = PictureBox1.Image
Kiitos Hennkka! Entäpäs osaako kukaan kertoa kuinka luvun pyöristäminen onnistuu? Luku pitäisi pystyä pyöristämään aina ylöspäin eli 1.1 = 2 jne..
x = Math.Ceiling(y)
Yrititkö edes selvittää tätä itse?
kyllä yritin, mutta en löytänyt. VB:tä muistellen niin Round:lla pystyi pyöristämään ja .NETiin kun kirjoittaa Round niin ehdotuksiksi tulee MidpointRounding() ja kyseisellä pätkällä en saanut mitään aikaiseksi.
No jos vaikka Googleen kirjoittaa "VB.Net round up" niin ekassa osumassa on vastaus. Eli minusta kyllä voisi sanoa että et yrittänyt selvittää itse, jos ensimmäinen asia on kysyä muilta, kun VB6:n syntaksi ei toimi suoraan.
VB.netissä funktiot löytyvät aina jonkin luokan alta. Esim. Matematiikkan liittyvät funktiot löytyvät Math-luokasta ja teksti Strings-luokasta.
Nyt kun on viikonlopun istunut koneella ja purkanut p-s-c.comin sorsia, niin alkaa pikkuhiljaa päästä jyvälle .NET:stä. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.