Hur få text ur en dold textbox i C#?

Permalänk
Medlem

Hur få text ur en dold textbox i C#?

Jag har en textbox i C# som jag inte vill ska synas för användaren. Den funkar som den ska när den är synlig men om jag försöker sätta den som dold i preferences i visual studio så hämtas inte datan ifrån den. Ska den inte funka för programmet även om den är dold för användaren? Någon som har något tips hur man ska lösa det?

Permalänk
Medlem

Måste det vara en textbox om den ändå inte ska vara synlig?

Permalänk
Medlem

Pratar vi windows forms? web forms?

Permalänk
Hedersmedlem

Jag har ingen aning vad du försöker göra, men det låter som att du skulle må bra av att ta ett steg tillbaka och förklara vad det är du faktiskt försöker göra istället för att försöka få hjälp med din tilltänkta lösning. Läs mer om XY-Problemet.

Permalänk
Medlem

Ja window forms är det. Jag gör ett program i C# med hjälp av visual studio som registrerar reparationsarbeten för en butik. Den kommunicerar med en mysql databas som jag senare ska flytta ut på nätet, just nu ligger den bara lokalt på min dator. Programmet är kopplat till databasen genom en tableadapter som sen fyller ett dataset.

Jag har utan problem förstått lyckats koppla textboxar till basen genom att klicka på databindings i preferences. Problemet är att jag har ett par stycken variabler som inte har någon koppling till textboxar men jag hade ändå behövt koppla dessa till ett fält i basen. Jag försökte följa olika guider för att göra detta men fick det aldrig att funka så jag skapade helt enkelt en textbox där värdet ifrån variablerna kopieras. Antar att detta inte är bästa lösningen men detta funkar iallafall. Skulle som sagt bara vilja dölja den ifrån användaren.

Permalänk
Avstängd

Gör bara så att när man skriver så blir det "****" och det går att läsa ut det med fast inte som "*".

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk

EDIT: Läste det som att du ville flytta ut applikationen på nätet inte SQL servern. Så du kan bortse från det jag skev nedan.
Men frågan om du kan visa lite kod kvarstår.

Det ringer en varningsklocka här.

Du kommer aldrig att kunna flytta ut den här applikationen på nätet eftersom du troligtvis kopplar upp dig mot en databasen direkt från Windows applikationen. (Om du tänker distribuera en tom databas med applikationens .exe så kan du bortse från det jag skriver nedan.)
Om du gör det så bör du räkna med att din databas kommer att läsas av obehöriga, förstöras etc.
Jag antar också att detta är för ett företag, så hoppas verkligen att den inte innehåller någon personlig information, som namn, adress etc och accessen mot databasen inte delas med något annat.

Du bör skriva applikationen så att den pratar med ett API som körs på en central server någonstans som i sin tur pratar med databasen. Och det måste finnas JWT token baserad säkerhetslösning mellan applikationssidan och API't.

Vet att det låter krångligt och att du bara vill att ha något som fungerar.

Men tillbaka till din fråga, kan du visa relevanta delar av koden där du skriver/läser till/från textboxen?

Permalänk
Medlem

Ja alltså koden för att för att skriva till textboxen är ganska så banal och ser ut såhär:

private void sparaHandelseGrid() { int rader = this.händelserDataGridView.RowCount; int kolumner = this.händelserDataGridView.ColumnCount; string[,] handelser = new string[rader, kolumner]; if (rader != 0) { for (int rad = 0; rad <= rader - 1; rad++) { for (int kol = 0; kol <= kolumner - 1; kol++) { handelser[rad, kol] = this.händelserDataGridView.Rows[rad].Cells[kol].Value.ToString(); } } } json = JsonConvert.SerializeObject(handelser, Formatting.Indented); händelser_txtb.Text = json; }

Sen är textboxen bunden till ett fält i datasetet såhär

Permalänk
Avstängd

Jag förstår inte riktigt varför du behöver skriva värdena någonstans, om de inte går att ändra av användaren så kan du väl bara behålla dem som de är när du hämtar upp informationen?

Permalänk
Avstängd
Skrivet av Tallrot:

Ja alltså koden för att för att skriva till textboxen är ganska så banal och ser ut såhär:

Sen är textboxen bunden till ett fält i datasetet såhär

https://i.postimg.cc/1zRGqnKW/databinding.jpg

Är det att du vill ha ett dolt värde i listview? Eller menar du skrivskyddad textbox som går att läsa men inte skriva?

Visa signatur

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Permalänk
Medlem

precis, borde räcka att göra textboxen readonly.

men skulle vara fint om du berättar mer om hur applikationen skall köras / installeras / distribueras - så kan vi peka åt rätt håll

// LZ

Permalänk
Medlem
Skrivet av Tallrot:

Ja window forms är det. Jag gör ett program i C# med hjälp av visual studio som registrerar reparationsarbeten för en butik. Den kommunicerar med en mysql databas som jag senare ska flytta ut på nätet, just nu ligger den bara lokalt på min dator. Programmet är kopplat till databasen genom en tableadapter som sen fyller ett dataset.

Jag har utan problem förstått lyckats koppla textboxar till basen genom att klicka på databindings i preferences. Problemet är att jag har ett par stycken variabler som inte har någon koppling till textboxar men jag hade ändå behövt koppla dessa till ett fält i basen. Jag försökte följa olika guider för att göra detta men fick det aldrig att funka så jag skapade helt enkelt en textbox där värdet ifrån variablerna kopieras. Antar att detta inte är bästa lösningen men detta funkar iallafall. Skulle som sagt bara vilja dölja den ifrån användaren.

Istället för att använda en textbox som någon form av mellanlagring av data, så kan du skippa den och helt enkelt skapa en string i klassen för ditt formulär. Spara sedan din Json-sträng i denna variabel istället för i din textbox.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Medlem

Hela problemets kärna är just där, jag har tidigare sparat det i en string variabel men har inte lyckats binda den till databasen på samma sätt som jag kan göra med textboxarna där jag bara kan klicka på databindings i visual studio. Om någon vet hur jag gör så vore jag evigt tacksam.

Permalänk
Medlem

Man kan väl sätta formfält till hidden om jag inte missminner mig. Då får den sina bindings etc men syns inte för användaren. Css varianten är en enkel visibility:hidden.
Optimalt borde värdet kunna hållas i modellen utan att ett fält behöver hanteras i DOMen.
https://www.w3schools.com/tags/att_input_type_hidden.asp

Visa signatur

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.