Miten saisin tälläisen toteutettua:
Painonappi Hae! 1)joka arpoo valittavan kysymyksen (excel-rivin)
Painonappi Tarkasta 2) Esittää kysymyksen
Textbox 3) Käyttäjä kirjoittaa vastauksen
4) Tarkastaa onko vastaus oikein ja ilmoittaa sen
Vastaus tulisi sekä englanniksi että suomeksi
1) Arpoa voi rnd() -funktiolla.
2) InputBox -funktiolla voi "esittää kysymyksen".
4) Vertailuoperaattori on =.
Jos haluat tarkempia vastauksia, esitä tarkempia (yksilöidympiä) kysymyksiä. Myöskin jos saisit jonkinlaisen rungon tehtyä itse ja kysyisit sitten sen ongelmakohdista niin tulisi ehkä vähän vähemmän sellainen tunne, että toivotaan jälleen kerran muiden tekevän omat työt/koulutehtävät...
Pistelen tässä päivitystä koodiin kun olen saanut jonkilaista toimivaa versiota
'Jos valintaruutu painetaan asetetaan lomakkeen väri mustaksi If (ctrlcheckbox1.CheckState = System.Windows.Forms.CheckState.Checked) Then Form1.BackColor() = System.Drawing.ColorTranslator.FromOle(RGB(255, 0, 0)) 'Jos valintaruutua ei ole painettu pysyy lomakkeen värin tausta oletuksena If (ctrlcheckbox1.CheckState = System.Windows.Forms.CheckState.Unchecked) Then Form1.BackColor = System.Drawing.ColorTranslator.FromOle(RGB(210, 210, 210))
Mikäköhän tuossa mahtaa olla vikana kun näyttää herjaavan tuota ekaa IF riviä BackColor() asti samoin tuo alempi Form1.backColor tarkoituksena siis saada '-merkillä olevat komennot toimimaan.
End if?
Kokeile form1.backcolor = colors.blue jne.
Ei onnistunut, tuossa siis projekti:
Ilmeisesti ongelmasi on formin taustavärin vaihto. Se onnituu näin:
'valmiilla väreillä Me.BackColor = Color.Black 'RGB:llä Me.BackColor = Color.FromArgb(210, 210, 210)
Huomaa että tuossa kutsutaan Me.BackColor eikä Form1.BackColor
Heppa Isoarska83!
Minusta olis ihan mahdottoman kiva tietää syy siihen, että miksi haluaisit käytää (vastioin kaikkien gurujen nevoja) ohjelmasi tietokantana juuri Excel'iä ..?
Minusta tuntuu että "Gurujen" neuvot on nyt ymmärretty lievästi sanoen väärin...
Toisaalta noiden esimerkkien perusteella voisin ymmärtää, että sovellus olisi tarkoitus tehdä VB.NETillä eikä Exceliin, joten sikäli on ihan hyvä kysymys miksi tiedot tallennettaisiin Exceliin.
Heippa Grez!
Jaksas sä vääntää tosta "named" instaissin ja selitää mitä tapahtuu...(mua rupee ihan oikeesti jo ......n tää excel)
Sori, en ymmärrä mitä ajat takaa. Et muuten vastannut mitään mun mailiin niin en tiedä tuliko ees perille :(
Heippa Grez!
Kiitos tuli perille:)
Juuri tuota siis tarkoitin mitä Grez tuossa sanoi eli sovellus tehdään VB:Netillä eli sori nuo sekoilut.
'Jos valintaruutua painetaan asetetaan lomakkeen väri mustaksi
ctrlcheckbox1.BackColor = Color.Black
'Jos valintaruutua ei ole painettu pysyy lomakkeen värin tausta oletuksena
ctrlcheckbox1.BackColor = Color.DarkGray
Miksi tuo nyt ei toimi:
ctrlcheckbox1.BackColor = Color.Black tai Me.BackColor = Color.Black
Me.BackColor = Color.FromArgb(210, 210, 210) tai ctrlcheckbox1.BackColor = Color.FromArrgb(210, 210, 210)
Ihan sama tulos rgb:llä tai suoraan väreillä eli ei toimi.
Eli tarkoitus checkboxin (ctrlcheckbox1) nappia painettaessa (rasti ruutuun) että väri vaihtuisi mustaksi jos ei paineta niin väri pysyy samana, tuo vaan ei ota onnistuakseen jostain ihme syystä.
ctrlcheckbox1.BackColor = Color.Black onnistuhan se tuolla mutta millä saan palautettua värin takaisin oletukseksi kun nappi ruksataan pois?
Katsot mikä sen napin väri on ennen muutosta ja laitat sen väriksi. Todennäköisesti saat sen ihan napin ominaisuuksia vilkuilemalla tai voit toki tallentaa sen johonkin muuttujaan ohjelmaa käynnistäessä tai mustaksi vaihtaessa.
Onnistui, mutta onnistuuko ihan satunnaisen värin käyttö joka kerta samoin vai onko tuolle jokin random komento erikseen?
Public Function RandomRGBColor() As Long RandomRGBColor = RGB( _ Int(Rnd() * 256), _ Int(Rnd() * 256), _ Int(Rnd() * 256)) End Function
Onnistuuko tuon käyttö siten että aina ohjelmaa käynnistettäessä Formin väri vaihtuisi satunnaisesti? Nyt siis aliohjelma ja sen kertotauluohjelma käynnistyy ensin, mutta haluaisin homman niin että ensimmäisenä tulee funktio joka arpoo tuon formin värin sitten tuo kertotaulu, tarvittaessa saisin tuosta checkboxista formin värin palautettua oletusväriksi. Ei ota onnistuakseen
Dim kertoja As Short ' Muuttujan määrittely 'Vaihdetaan näytettävää tekstiä laskee kun nappia painetaan eli kertoo painalluksen määrän Private Sub btnpainike_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpainike.Click kertoja = kertoja + 1 btnpainike.Text() = "Painoit minua ---painallus #" & kertoja End Sub ' Tämä suoritetaan kun hiiren kursori havaitsee liikettä ' Tekstiboxi näyttää hiiren x,y koordinaatit ' Hiiren kursori osoittaa hiiren liikkeen mutta ei painikkeiden päällä Private Sub Form1_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove Dim Button As Short = eventArgs.Button \ &H100000 Dim Shift As Short = System.Windows.Forms.Control.ModifierKeys \ &H10000 Dim X As Single = (eventArgs.X) Dim Y As Single = (eventArgs.Y) ctrllabel.Text = "Mouse coordinates: (" & X & "," & Y & ")" End Sub 'Aliohjelma joka näyttää MsgBoxissa halutun luvun kertotaulun 1-10 Sub NaytaKertoTaulu(ByVal luku As Integer) Dim i As Integer, teksti As String For i = 1 To 10 teksti = teksti & luku & "*" & i & "=" & (luku * i) & vbCrLf Next MsgBox(teksti) End Sub 'Kertotaulu aliohjelman kutsu Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load NaytaKertoTaulu(2) NaytaKertoTaulu(5) NaytaKertoTaulu(10) NaytaKertoTaulu(20) End Sub Public Function RandomRGBColor = RGB()As long Int(Rnd() * 256), _ Int(Rnd() * 256), _ Int(Rnd() * 256)) End Function Private Sub chkbox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkbox.CheckedChanged End Sub End Class
Mod. edit: kooditagit
Pystyykö noita funktioiden järjestystä säätämään formin latauduttua? Jos haluan ensin 1) formilla on läpinäkyvyys timerin kanssa 2) Sen jälkeen tulee vasta tulee vasta kertolaskutoimitus.
Isoarska83 kirjoitti:
Pystyykö noita funktioiden järjestystä säätämään formin latauduttua? Jos haluan ensin 1) formilla on läpinäkyvyys timerin kanssa 2) Sen jälkeen tulee vasta tulee vasta kertolaskutoimitus.
Varmistetaan nyt ensin, että ymmärsin oikein, jos tämä ei oo, mitä tarkotit, jätä loppuviesti lukematta ja tarkenna: haluat, että formi "feidaa" näkyviin, ja vasta kun se on kokonaan näkyvissä, voi sillä tehdä asioita?
Ota nuo kertotaulun näyttämiset pois tuolta Form_Loadista ja laita ne niin, että timer suorittaa ne kun formi on kokonaan näkyvissä.
Justiinsa noin, mutta tuossakin läpinäkyvyydessäkin on pakko käyttää timeria?
Ilman timeria ei feidannu kokonaan vaan jäi läpinäkyväksi
Millä saan arvottua lomakkeelle värit kun checkboxia painetaan ruksatuksi ja ruksaamattomana palauttaa kyseisen arvon lomakkeelle?
Private checkbox As Button Private Sub randomBackColor(ByVal sender As Object, ByVal e As EventArgs) If GetType(System.Windows.Forms.Control).IsAssignableFrom(CType(Me.BackColor, Object).GetType()) Then ' Asettaa taustavärin jos kontrolloitavana on painike ' WindowsFormsComponentEditori asettaa random-värin Dim rnd As New Random CType(Me.ControlCollection, System.Windows.Forms.Control).BackColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)) checkbox.Refresh() End If End Sub End Class
Ainoa valitus tulee: "ControlCollection is a type in ohjelma.form and cannot be used in expression"
Eli mikäköhän tuossa on ongelmana
Sain sen random-värin onnistumaan.
Miten saan tehtyä nappulaan komennon joka tekee uusia formeja aina kun sitä painetaan?
Katselin tuolta oppaan tutoriaalista mallia, mutta kyseisellä esimerkillä ei näyttänyt onnistuvan. Lomake on nimeltään form1 ja toinen form2
Heippa Isoarska83!
Private Sub Command1_Click() Dim UusiFormi As Form1: Set UusiFormi = New Form1 UusiFormi.Caption = "UusiFormi": UusiFormi.Show End Sub
UusiFormi.caption tuossa tulee virhettä: "caption is a member of form of 'ohjelma.form1'onko tuo caption jollain muulla nimellä/komennolla kun ei löydy valikosta?
Korjaa Dimistä Form1 -> Form.
caption onkin tässä VB.Netissä Name eli toimii nyt, mutta tuo tekee siis saman lomakkeen eli onnistuuko kokonaan tyhjän lomakkeen luominen?
Eikös caption ole vb.netissä text?
Heippa taas Isoarska83!
tällä pitäs tulla uusi tyhjä formi...
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Dim uusiformi As Form = new Form uusiformi.Text="uusiformi" '(~caption) uusiformi.Name="uusiformi" uusiformi.Show() End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.