Diskuze: proc mi to nefunguje :-(
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 42 zpráv z 42.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
zbytocne vela eventov a ten prvy je uplne nezmyselny. Neviem konkretne co by to malo robit, kedze si svoj problem nekonkretizoval, ale z toho co som videl sa snazis nahradzovat znak v textboxe ked tam niekto napise "a". Skus tento kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.Contains('a'))
{
textBox1.Text = textBox1.Text.Replace('a', '#');
textBox1.SelectionStart = textBox1.Text.Length;
}
}
}
}
super to funguje, ale puvodní zaměr byl abych mohl použit 4 klavesy treba
r b g y
a misto r by se napsalo RED misto b BLUE misto g GREN y YELOU a to v pořadi
která klavesa byla stlačení dřív. Mužeš mi s tím pomoc Dík začinam
private void AddText(string s)
{
int ss = textBox1.SelectionStart;
if (textBox1.SelectionLength == 0) textBox1.Text = textBox1.Text.Insert(textBox1.SelectionStart, s);
else textBox1.SelectedText = s;
textBox1.SelectionStart = ss + s.Length;
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; AddText("BLUE"); return;
case 'r': e.KeyChar = '\0'; AddText("RED"); return;
case 'g': e.KeyChar = '\0'; AddText("GREEN"); return;
}
}
stačí to takto:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; textBox1.SelectedText = "BLUE"; return;
case 'r': e.KeyChar = '\0'; textBox1.SelectedText = "RED"; return;
case 'g': e.KeyChar = '\0'; textBox1.SelectedText = "GREEN"; return;
}
}
nabuduce, ked chces si pytat odpoved,ze preco ti nieco nefunguje, tak skus nazov problemu trosku inak sformulovat, lebo skus si predstavit, ze keby kazdy napisal ako nazov problemu: "Preco to nefunguje", tak by to vypadalo asi takto:
PHP: Preco to nefunguje
PHP: Preco to nefunguje
PHP: Preco to nefunguje
C/C++: Preco to nefunguje
C/C++: Preco to nefunguje
C/C++: Preco to nefunguje
C/C++: Preco to nefunguje
atd., atd., atd...
takze nabuduce, ked chces napisat, ze ti nieco nefunguje, tak skus ako nadpis napisat strucne,co asi ti nefunguje, resp, ze coho presne sa ta chyba tyka
a potom rozvin do textu svoj problem,aky mas a ked chces vlozit zdrojovy kod, tak mas aj tlacitko na vkladanie zdrojaku, pomocou toho tlacitka sa presne osadia tabulatory a medzery podla toho,ako mas formatovany zdrojak a tym sa sprehladni a bude moct sa ti lepsie poradit...
POTŘEBUJU ABY KDYŽ ZMAČKNU KLAVECU B MI TO NAPSALO BLUE
G GREEN
R RED A Y YELOU
A POSKLADALO SE TO PODLE TOHO KTERA KLAVESA SE ZMACKNE DŘÍV
DÍK
a hlavne si vypni CAPS! a nepis cele vety velkym pismom, je to, ako keby si na nas krical
a k comu by ti ma posielat komplet,ved by si sa ani nic nenaucil a okrem toho, zadarmo ti nikto komplet riesenie nebude posielat
potřebuju to do prištiho patku a to se asi naučit nestihnu
Tak hold propadneš. K čemu je student, který se ani nesnaží..
Navíc tu máš komplet to, co jsi potřeboval.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; textBox1.SelectedText = "BLUE"; return;
case 'r': e.KeyChar = '\0'; textBox1.SelectedText = "RED"; return;
case 'g': e.KeyChar = '\0'; textBox1.SelectedText = "GREEN"; return;
}
}
Neumíš to přiřadit do události KeyPress TextBoxu?
nejsem student ale samouk a potřebuju to na vanoční besídku na soutěž s
otázkama a to ma byt hlasovací zařízení kdo bude odpovídat jako
první.
jediný co jsem zatim dal je vysledková tabule na přičítání bodů
tak bych to chtel k tomu vložit aby to bylo komplet na jedne obrazovce .
to je dobře.
Ale stejně jsi ještě nevysvětlil, s čím máš problém.
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; textBox1.SelectedText = "BLUE"; return;
case 'r': e.KeyChar = '\0'; textBox1.SelectedText = "RED"; return;
case 'g': e.KeyChar = '\0'; textBox1.SelectedText = "GREEN"; return;
}
}
tohle zkopíruješ do kódu a v designeru to přidáš textBox1_KeyPress pod událost KeyPress a vyhodíš ty události PreviewKeyDown a TextChanged co tam máš
to je na mě asi hrr
začal jsem se tomu věnovat minulej tejden tak tomu zas tak nehovím
potřeboval bych to pravě komplet i s tim using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
ale jestli nechces zkusim stestí jinde
ty si snad děláš srandu..
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; textBox1.SelectedText = "BLUE"; return;
case 'r': e.KeyChar = '\0'; textBox1.SelectedText = "RED"; return;
case 'g': e.KeyChar = '\0'; textBox1.SelectedText = "GREEN"; return;
}
}
}
}
pro vkládání kódu používej tlačítko </>
mam toto a potřeboval bych aby když zmačknu ty klavesy tak to psalo do texBoxu red yelou green ...
Máš to tu komplet. Snad pro tebe není problém přidat tam další znak, nebo upravit text?!
nebo to chceš takto:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
switch(e.KeyChar)
{
case 'b': e.KeyChar = '\0'; textBox1.Text = "BLUE"; return;
case 'r': e.KeyChar = '\0'; textBox1.Text = "RED"; return;
case 'g': e.KeyChar = '\0'; textBox1.Text = "GREEN"; return;
}
}
}
}
super
funguje
ale potřebuju aby tam zustaly všechny slova tak to se napiše red a po y se
zmeni na Yelou
mas čislo učtu?
neco bych ti poslal
a aby se nemohlo poakovat když nekdo zmackne 2x "r" tak at se nenapiše 2x RED
a ješte kdyby misto red bylo červeny kolečko green zeleny...
nezlobim moc?
nenaucis sa nic, ked si budes pytat komplet riesenie problemu... skus experimentovat a hladat, v com robis chybu a na vlastnych chybach sa clovek najlepsie nauci...
my ta mozeme iba nakopnut tym spravnym smerom,ale riesit to budes musiet sam...
ozaj ty chces, aby celu apku ti napisali a ti ju poslali? tak sa radsej na to vykasli...
Když za to plánuje zaplatit, tak proč ne?
Já mu to klidně za peníze napíšu
super
funguje
ale potřebuju aby tam zustaly všechny slova tak to se napiše red a po y se
zmeni na Yelou
tak fungovala ta první verze
a aby se nemohlo poakovat když nekdo zmackne 2x "r" tak at se nenapiše 2x RED
prováděj kontrolu jestli text už RED obsahuje (pomocí .Contains)
a ješte kdyby misto red bylo červeny kolečko green zeleny...
nezlobim moc?
Zlobíš. Proč jsi to nenapsal rovnou.. Když ti tu napíšu návod na kolečko, tak to stejně nepobereš. Udělej si čtvereček tak, že na formulář hodíš Panel a budeš měnit jeho barvu.
case 'b': e.KeyChar = '\0'; panel1.BackColor = Color.Blue; return;
to budu potřebovat ty panely 4 aby bylo poznat pořadí kodo
dřív
neumělecky se to dá udělat i takto:
private void textStop_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.B: if (!textStop.Text.Contains("BLUE")) textStop.Text += "BLUE "; e.Handled = true; return;
case Key.G: if (!textStop.Text.Contains("GREEN")) textStop.Text += "GREEN "; e.Handled = true; return;
case Key.R: if (!textStop.Text.Contains("RED")) textStop.Text += "RED "; e.Handled = true; return;
case Key.Y: if (!textStop.Text.Contains("YELLOW")) textStop.Text += "YELLOW "; e.Handled = true; return;
default: e.Handled = true; return;
}
}
pardon respektive:
private void textStop_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.B: if (!textStop.Text.Contains("BLUE")) textStop.Text += "BLUE "; break;
case Key.G: if (!textStop.Text.Contains("GREEN")) textStop.Text += "GREEN ";break;
case Key.R: if (!textStop.Text.Contains("RED")) textStop.Text += "RED "; break;
case Key.Y: if (!textStop.Text.Contains("YELLOW")) textStop.Text += "YELLOW "; break;
}
e.Handled = true;
}
pokial ponukne peniaze, tak nepoviem.. ale pokial by to chcel za tyzden a zadarmo, tak pochybujem, hlavne pokial z nej nikto iny nebude mat osoh
Co treba napsat reseni, aby to mohlo i nekomu pomoct v budoucnu?
Jozef kratky napisal:
"mas čislo učtu?
neco bych ti poslal"
Ak mu nieco poslal, tak nemusi pisat riesenie, ak nie, bolo by prinajmensom
slusne ho napisat a zverejnit tu.
Pak to patri do pracovnich nabidek, si myslim.
Josef Krátký to pak řešil přes vzkazy poslal mi i projekt. Jako řešení by se dalo označit třeba toto:
private void textStop_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.B: if (!textStop.Text.Contains("BLUE")) textStop.Text += "BLUE "; break;
case Key.G: if (!textStop.Text.Contains("GREEN")) textStop.Text += "GREEN ";break;
case Key.R: if (!textStop.Text.Contains("RED")) textStop.Text += "RED "; break;
case Key.Y: if (!textStop.Text.Contains("YELLOW")) textStop.Text += "YELLOW "; break;
}
e.Handled = true;
}
Problém byl, hlavně v tom, že on to chvíli psal jako WinForm, chvíli jako WPF a absolutně nevěděl jak zde uváděné rady použít. A nedokázal vůbec vysvětlit co vlastně řeší (přestože dost nešťastně).
V podstatě mu šlo o toto:
Dělá kvíz a pro čtyři. Každému hráči přidělí klávesu na
klávesnici. Pokud bude hráč znát správnou odpověď, tak stiskne svou
klávesu. A on chce znát pořadí, v jakém byly klávesy stisknuty, aby
hráči mohli ve stejném pořadí odpovídat.
No ne, ja to myslel tak, ze od toho je to forum, aby se tady treba nezakladaly duplicity a pokud nekdo najde stejny problem, tak mu ono reseni usetri cas.
Naprosto souhlasím. Ale v podstatě ve vláknu, ve kterém ani nezjistíš, na co se tazatel ptá, asi odpověď hledat nebudeš.
Zobrazeno 42 zpráv z 42.