Niin, olen aloittelija ja älkää haukkuko minua heti. Eli olen tekemässä nettiselainta. (Visual Basic) Olen omalla tyylilläni tehnyt kotisivu-asetuksen, eli pystyy asettamaan nettisivun. Olen tyytyväinen itseeni, että näin pitkälle pääsin, mutta ongelmaksi tuli, että kun "selain" suljetaan, kotisivuasetus katoaa. Kun painan nettiselaimessa "aseta kotisivu"-näppäintä, aukeaa uusi lomake jossa on textbox johon kotisivun osoite syötetään ja nappi, mistä asetus tehdään.
Asetuksen muuttonappula:
Public Class Form2 Shared Property kotisivu As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click kotisivu = TextBox1.Text Me.Close() End Sub End Class
Ja kotisivulle siirtymisnäppäin:
Private Sub KotisivuToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KotisivuToolStripMenuItem.Click WebBrowser1.Navigate(Form2.kotisivu) End Sub
Apua kaivataan. Ja tuo selain on vain harjoittelua, en uutta Mozilla FireFoxia tai Internet Exploreria aio tehdä.
-Zuber
Ps. Tämä viesti on kirjoitettu sillä.
Tutustu tiedon tallentamiseen tiedostojen avulla.
Luultavasti tarkoituksenmukaisinta olisi tallentaa kotisivu My.Settingsiin
Voisiko joku kertoa lisää? En paljoa tästä My Settingistä tiedä...
EDIT: Koodia, minkälaista.?. Mitä pitää kirjoittaa, että tämän MySettingsin saa käyttöön?
Siinähän miiro pisti sulle linkin. Eiku vaan lukemaan.
Joo, kiitos linkistä ja löysin toisenkin ohjeen, ja sen avulla sain sitten tehtyä! Vaikka olikin englantia...
//Miten saan WebBrowserin sijainnin näkymään osoitekentässä? Eli mikä sen nimi on? (jos tajuutte, WebBrowser.? tai WebBrowser?)
Tuohonkin löytyi jo vastaus, sen keksin itse, ja taas uutta kysymystä pukkaa:
Yritän laittaa edelleen sen nettisivun osoitteen näkyviin osoitekenttään ja toteutan sitä My.Settingsillä (hehheh, ei varmaan paras tyyli mutta ihan sama). Minulla on asetus nimeltänsä Nykyinensivu. Osoitekenttään pitäisi automaattisesti päivittyä tämän arvo, mutta siihen ei kelpaa muodoksi string. Mikä siihen käy? Eli:
WebBrowser1_Url = My.Settings.Nykyinensivu
(ei ole kopioitu siitä koodista suoraan, saattaa olla väärin koska tällä koneella ei ole visualbasicia)
Tuohon My.Settings.Nykyinensivu:un pitäisi määrittää, mikä se on, onko se string vai mikä...
En osaa kyllä yhtään selittää... Koettakaa ymmärtää...
Moi ZuBar!
Määritä My.Settings.Nykyinensivu merkkijonoksi (String) ja...
WebBrowser1.Url = New Uri(My.Settings.Nykyinensivu)
Kiitos neuvosta! Pitää kokeilla.
Ps. Olen muuten ZuBer... :D
Heittää tällaista: Invalid URI: The format of the URI could not be determined.
Eli ei lataa sivua ollenkaan... Pitäisikö tuo tehdä muuttujilla?
Onko muuttujia mahdollista tallentaa niin, että niiden arvot ovat tallella ohjelman seuraavilla käyttökerroilla? Muuttujia tulisi paljon...
Moi taas ZuBer!
lisää projektiisi app.config filu ja...
app.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="Nykyinensivu" value="" /> </appSettings> </configuration>
MainForm:
Imports System.Configuration Public Partial Class MainForm Dim config As Configuration = _ ConfigurationManager.OpenExeConfiguration( _ ConfigurationUserLevel.None) Dim strUri As String Public Sub New() Me.InitializeComponent() End Sub Sub MainFormLoad(sender As Object, e As EventArgs) If config.AppSettings.Settings.Item( _ "Nykyinensivu").Value = "" Then config.AppSettings.Settings.Item( _ "Nykyinensivu").Value = "https://www.ohjelmointiputka.net" 'esim. config.Save(ConfigurationSaveMode.Modified) End If WebBrowser1.Url = New Uri( _ config.AppSettings.Settings.Item("Nykyinensivu").Value) End Sub Sub WebBrowser1DocumentCompleted(sender As Object, _ e As WebBrowserDocumentCompletedEventArgs) config.AppSettings.Settings.Item( _ "Nykyinensivu").Value = WebBrowser1.Url.ToString config.Save(ConfigurationSaveMode.Modified) End Sub End Class
Seuraava kysymys: Miten luon käyttäjätunnusjärjestelmän Visual Basicilla? Se ei tulisi nettiin.
Pitäisi saada monta tunnusta tehtyä, ja niin, että ne tallentuvat seuraavillekin kerroille avattaviksi. Tunnuksille pitäisi saada yksilöllisiä asetuksia esim. kun tunnuksen 3 textboxiin1 kirjoitetaan auto, niin myös ensi kerralla kun tunnus 3 menee sisälle, se näkyy.
Yritin käyttää muuttujia, mutta jokainen tunnus olisi pitänyt luoda jo koodeissa, eikä nimeä tai salasanaa olisi pystynyt muuttamaan. Siitä tulisi muutenkin liian monimutkainen.
Kiitos jo etukäteen ja kiitos Nealle jo kahdesta vastauksesta.
Aluksi voit soveltaa noita samoja asioita kuin kotisivunkin tallennukseen.
En saa tuota toimimaan, Nea. Heittää sinistä viivaa noiden ConfigurationSaveMode, Configuration ym. alle.
Moi taas ZuBer!
viimeisimpään: lisää myös Projektiisi referenssi: System.Configuration
ja edelliseen kysymykseesi: elikä jos SQL Server EXPRESS on asennettu niin..
tässä hieman asiaa käyttäjätunnusten/salasanojen/asetusten tiimoilta
'SqlServer testitietokata & taulun rakenne DataBase Name: LoginBase Table Name: LoginData Columns: Name: num (PrimaryKey) Data Type: int Identity Specification: Yes (Is Identity): Yes Identity Increment: 1 Identity Seed: 1 Allow Nulls: False Name: username Data Type: varchar(25) Allow Nulls: False Name: password Data Type: varchar(16) Allow Nulls: False Name: setting Data Type: varchar(200) Allow Nulls: True
Imports System.Data Imports System.Data.SqlClient Public Partial Class MainForm Private conn As New SqlConnection() Private IsChanged As Boolean = False Public Sub New() Me.InitializeComponent() End Sub Sub MainForm_Load(sender As Object, e As EventArgs) For i = 1 To 2 Dim ctl As TextBox = _ CType(Me.Controls("textBox" & CStr(i)),TextBox) ctl.MaxLength = 16 ctl.PasswordChar = CType("*", Char) ctl.Visible = False Next button1.Text = "Muuta" button2.Text = "Testi" Dim frmLogin As New LoginForm Me.Hide frmLogin.ShowDialog Me.Show conn.ConnectionString = _ "Data Source=.\SQLEXPRESS;" + _ "Initial Catalog=LoginBase;Trusted_Connection=Yes" End Sub Sub Button1_Click(sender As Object, e As EventArgs) Dim ctl As TextBox = Nothing If button1.Text = "Muuta" Then For i As Integer = 2 To 1 Step -1 ctl = CType(Me.Controls("textBox" & CStr(i)), TextBox) ctl.Visible = True Next button1.Text = "OK": ctl.Focus ctl = Nothing: Exit Sub ElseIf button1.Text = "OK" Then Dim tagStr As String = String.Empty For i As Integer = 1 To 2 ctl = CType(Me.Controls("textBox" & CStr(i)), TextBox) If ctl.Text = String.Empty ctl.Focus: ctl = Nothing: Exit Sub End If If tagStr <> String.Empty And ctl.Text <> tagStr Then MsgBox("Salasana ja salasanan varmistus eivät täsmää!") For j As Integer = 2 To 1 Step -1 ctl = CType(Me.Controls("textBox" & CStr(j)), TextBox) ctl.Clear Next j ctl.Focus: ctl = Nothing: Exit Sub End If tagStr = ctl.Text Next i conn.Open Dim query As String = _ "SELECT * FROM [LoginData] where username='" _ + LoginData(0) + "' And password='" + LoginData(1) + "'" Dim da As SqlDataAdapter = New SqlDataAdapter(query , conn) Dim ds As New DataSet: da.Fill(ds, "LoginData") Dim cb As SqlCommandBuilder = New SqlCommandBuilder(da) ds.Tables("LoginData").Rows(0)(2) = textBox1.Text da.Fill(ds, "LoginData"): da.Update(ds, "LoginData") LoginData = New String(){ _ CType(ds.Tables("LoginData").Rows(0)(1), String) , _ CType(ds.Tables("LoginData").Rows(0)(2), String)} ds = Nothing: da = Nothing: cb = Nothing conn.Close For i As Integer = 1 To 2 ctl.Clear ctl = CType(Me.Controls("textBox" & CStr(i)), TextBox) ctl.Visible = False Next ctl = Nothing: button1.Text = "Muuta" End If End Sub Sub Button2_Click(sender As Object, e As EventArgs) Dim msg As Integer = _ MsgBox("Muutetaanko asetusta", _ vbYesNo, "Nykyinen asetus on: " + MyAppSetting) If msg = 6 Then MyAppSetting = InputBox("Uusi arvo: ", "Asetukset") IsChanged = True End If End Sub Private m_Logindata() As String Public Property LoginData As String() Get LoginData = m_Logindata End Get Set(value As String()) m_Logindata = value End Set End Property Private m_MyAppSettingData As String Public Property MyAppSetting As String Get MyAppSetting = m_MyAppSettingData End Get Set(value As String) m_MyAppSettingData = value End Set End Property Sub MainForm_FormClosing(sender As Object, e As FormClosingEventArgs) If IsChanged Then conn.Open Dim query As String = _ "SELECT * FROM [LoginData] where username='" _ + LoginData(0) + "' And password='" + LoginData(1) + "'" Dim da As SqlDataAdapter = New SqlDataAdapter(query , conn) Dim ds As New DataSet: da.Fill(ds, "LoginData") Dim cb As SqlCommandBuilder = New SqlCommandBuilder(da) ds.Tables("LoginData").Rows(0)(3) = MyAppSetting da.Fill(ds, "LoginData"): da.Update(ds, "LoginData") ds = Nothing: da = Nothing: cb = Nothing conn.Close End If conn = Nothing End Sub End Class
Imports System.Data Imports System.Data.SqlClient Public Partial Class LoginForm Private conn As New SqlConnection() Private Logged As Boolean = False Public Sub New() Me.InitializeComponent() End Sub Sub LoginForm_Load(sender As Object, e As EventArgs) textBox1.MaxLength = 25 textBox2.MaxLength = 16 textBox2.PasswordChar = CType("*", Char) button1.Text = "OK" conn.ConnectionString = _ "Data Source=.\SQLEXPRESS;" + _ "Initial Catalog=LoginBase;" + _ "Trusted_Connection=Yes" conn.Open End Sub Sub Button1_Click(sender As Object, e As EventArgs) If textBox1.Text = String.Empty Then textBox1.Focus: Exit Sub ElseIf textBox2.Text = String.Empty textBox2.Focus: Exit Sub End If Static cnt As Integer cnt += 1 Dim query As String = _ "SELECT username, password, FROM [LoginData] where username='" _ + textBox1.Text + "' And password='" + textBox2.Text + "'" Dim da As SqlDataAdapter = New SqlDataAdapter(query , conn) Dim ds As New DataSet: da.Fill(ds, "LoginData") If ds.Tables("LoginData").Rows.Count = 1 Then MainForm.LoginData = New String(){ _ CType(ds.Tables("LoginData").Rows(0)(0), String) , _ CType(ds.Tables("LoginData").Rows(0)(1), String)} MainForm.MyAppSetting = _ CType(ds.Tables("LoginData").Rows(0)(2), String) Logged = True End If ds = Nothing: da = Nothing If Not Logged And cnt < 3 Then textBox1.Clear: textBox2.Clear MsgBox("käyttäjätunnus/salasana on väärä!") textBox1.Focus: Exit Sub ElseIf Not Logged And cnt = 3 Then textBox1.Clear: textBox2.Clear MsgBox("käyttäjätunnus/salasana on annettu kolmasti väärin" + _ " - Ohjelma suljetaan...") End If Me.Close End Sub Sub LoginForm_FormClosin(sender As Object, e As FormClosingEventArgs) conn.Close If Not Logged Then End End Sub End Class
Moro!
Miten voisin tallentaa TextBox1.Text:in olemassa olevaan tiedostoon jonka polku määritellään valmiiksi koodissa. Eli kun käyttäjä painaa nappia esim. Lisää, TextBoxin texti esim. "Moi. Tämä on esimerkki. Ja sen sellaista." liittyy .txt-tiedoston C:\Random.txt tekstiin. Mieluiten edellisen tekstin yläpuolelle. Esim. Random.txt:n alkuperäinen teksti olisi ollut "Ja sillä tavalla...päläpälä...Loppu" ja tämän Lisää-nappulan painamisen jälkeen Random.txt on tämän näköinen: "Moi. Tämä on esimerkki. Ja sen sellaista. Ja sillä tavalla...päläpälä...Loppu" Tekstiä saattaisi olla alkuperäisesti tiedostossa että kirjoitetussa TextBox1.textissä monta riviä.
Jotain olen kokeillut mutta en ole saanut toimimaan. Kiitos myös edellisestä vastauksesta Nealle.
Sinun pitää ensin lukea tiedoston koko sisältö ja sitten tallentaa tiedostoon uudestaan ensin uusi tieto ja sen perään vanha tieto. Tässä ei pitäisi olla mitään ihmeellistä, jos olet tutustunut alussa mainittuihin tiedostoasioihin.
Miten saan avattua tekstiä tiedostosta TextBoxiin?
Enää en tarvitse tuossa apua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.