NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
josef kratky
Člen
Avatar
josef kratky:3.12.2016 23:17

using System;
using System.Collec­tions.Generic;
using System.Componen­tModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Window­s.Forms;

namespace WindowsFormsAp­plication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeCom­ponent();
}

bool flag;
private void textBox1_Previ­ewKeyDown(object sender, PreviewKeyDow­nEventArgs e)
{
if (e.KeyValue == 'a') flag = true;
}
private void textBox1_TextChan­ged(object sender, EventArgs e)
{
if (flag)
{
flag = false;
string str = textBox1.Text­.Replace('a', '#');
textBox1.Text = str;
textBox1.Selec­tionStart = textBox1.Text­.Length;
}
}
}
}

 
Odpovědět
3.12.2016 23:17
Avatar
lukasko.simon:4.12.2016 0:24

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;
            }
        }
    }
}
 
Nahoru Odpovědět
4.12.2016 0:24
Avatar
josef kratky
Člen
Avatar
Odpovídá na lukasko.simon
josef kratky:4.12.2016 8:57

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

 
Nahoru Odpovědět
4.12.2016 8:57
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:4.12.2016 11:45
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;
    }
}
 
Nahoru Odpovědět
4.12.2016 11:45
Avatar
HONZ4
Člen
Avatar
HONZ4:4.12.2016 11:54

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;
    }
}
Editováno 4.12.2016 11:56
 
Nahoru Odpovědět
4.12.2016 11:54
Avatar
mkub
Tvůrce
Avatar
Odpovídá na josef kratky
mkub:4.12.2016 13:12

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...

 
Nahoru Odpovědět
4.12.2016 13:12
Avatar
josef kratky
Člen
Avatar
Odpovídá na mkub
josef kratky:4.12.2016 16:24

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

 
Nahoru Odpovědět
4.12.2016 16:24
Avatar
josef kratky
Člen
Avatar
Odpovídá na HONZ4
josef kratky:4.12.2016 16:30

NEMUŽEŠ MI TO POSLAT KOMPLET JAKO TO PRVNÍ DIK

 
Nahoru Odpovědět
4.12.2016 16:30
Avatar
mkub
Tvůrce
Avatar
Odpovídá na josef kratky
mkub:4.12.2016 16:31

a hlavne si vypni CAPS! a nepis cele vety velkym pismom, je to, ako keby si na nas krical

 
Nahoru Odpovědět
4.12.2016 16:31
Avatar
mkub
Tvůrce
Avatar
Odpovídá na josef kratky
mkub:4.12.2016 16:33

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

 
Nahoru Odpovědět
4.12.2016 16:33
Avatar
josef kratky
Člen
Avatar
Odpovídá na mkub
josef kratky:4.12.2016 16:37

a co by si chtel za kompletni řešení

 
Nahoru Odpovědět
4.12.2016 16:37
Avatar
josef kratky
Člen
Avatar
Odpovídá na mkub
josef kratky:4.12.2016 16:39

potřebuju to do prištiho patku a to se asi naučit nestihnu

 
Nahoru Odpovědět
4.12.2016 16:39
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:4.12.2016 16:58

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?

Editováno 4.12.2016 16:58
 
Nahoru Odpovědět
4.12.2016 16:58
Avatar
HONZ4
Člen
Avatar
HONZ4:4.12.2016 17:02

holt

 
Nahoru Odpovědět
4.12.2016 17:02
Avatar
josef kratky
Člen
Avatar
Odpovídá na HONZ4
josef kratky:4.12.2016 17:08

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ů :-D
tak bych to chtel k tomu vložit aby to bylo komplet na jedne obrazovce .

 
Nahoru Odpovědět
4.12.2016 17:08
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:4.12.2016 17:17

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áš

Editováno 4.12.2016 17:19
 
Nahoru Odpovědět
4.12.2016 17:17
Avatar
josef kratky
Člen
Avatar
josef kratky:4.12.2016 17:27

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.Collec­tions.Generic;
using System.Componen­tModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Window­s.Forms;

namespace WindowsFormsAp­plication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeCom­ponent();
ale jestli nechces zkusim stestí jinde :-(

 
Nahoru Odpovědět
4.12.2016 17:27
Avatar
HONZ4
Člen
Avatar
HONZ4:4.12.2016 17:35

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 </>

 
Nahoru Odpovědět
4.12.2016 17:35
Avatar
HONZ4
Člen
Avatar
HONZ4:4.12.2016 17:43

2.

 
Nahoru Odpovědět
4.12.2016 17:43
Avatar
josef kratky
Člen
Avatar
josef kratky:4.12.2016 17:56

mam toto a potřeboval bych aby když zmačknu ty klavesy tak to psalo do texBoxu red yelou green ...

 
Nahoru Odpovědět
4.12.2016 17:56
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:4.12.2016 18:01

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;
    }
  }
 }
}
Editováno 4.12.2016 18:03
 
Nahoru Odpovědět
4.12.2016 18:01
Avatar
josef kratky
Člen
Avatar
Odpovídá na HONZ4
josef kratky:5.12.2016 0:05

super
funguje
ale potřebuju aby tam zustaly všechny slova tak to se napiše red a po y se zmeni na Yelou

 
Nahoru Odpovědět
5.12.2016 0:05
Avatar
josef kratky
Člen
Avatar
josef kratky:5.12.2016 0:06

mas čislo učtu?
neco bych ti poslal

 
Nahoru Odpovědět
5.12.2016 0:06
Avatar
josef kratky
Člen
Avatar
Odpovídá na josef kratky
josef kratky:5.12.2016 0:11

a aby se nemohlo poakovat když nekdo zmackne 2x "r" tak at se nenapiše 2x RED

 
Nahoru Odpovědět
5.12.2016 0:11
Avatar
josef kratky
Člen
Avatar
josef kratky:5.12.2016 0:46

a ješte kdyby misto red bylo červeny kolečko green zeleny...
nezlobim moc? :-)

 
Nahoru Odpovědět
5.12.2016 0:46
Avatar
mkub
Tvůrce
Avatar
Odpovídá na josef kratky
mkub:5.12.2016 2:55

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...

 
Nahoru Odpovědět
5.12.2016 2:55
Avatar
mkub
Tvůrce
Avatar
Odpovídá na josef kratky
mkub:5.12.2016 3:01

ozaj ty chces, aby celu apku ti napisali a ti ju poslali? tak sa radsej na to vykasli...

 
Nahoru Odpovědět
5.12.2016 3:01
Avatar
Odpovídá na mkub
Erik Šťastný:5.12.2016 10:50

Když za to plánuje zaplatit, tak proč ne? :D

Já mu to klidně za peníze napíšu :D

 
Nahoru Odpovědět
5.12.2016 10:50
Avatar
Ilidanek33
Člen
Avatar
Odpovídá na Erik Šťastný
Ilidanek33:5.12.2016 10:51

Já se taky hlásím :-D

 
Nahoru Odpovědět
5.12.2016 10:51
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:5.12.2016 15:11

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;
Editováno 5.12.2016 15:13
 
Nahoru Odpovědět
5.12.2016 15:11
Avatar
josef kratky
Člen
Avatar
Odpovídá na HONZ4
josef kratky:5.12.2016 17:33

to budu potřebovat ty panely 4 aby bylo poznat pořadí kodo
dřív

 
Nahoru Odpovědět
5.12.2016 17:33
Avatar
HONZ4
Člen
Avatar
Odpovídá na josef kratky
HONZ4:5.12.2016 17:38

... třeba deset

 
Nahoru Odpovědět
5.12.2016 17:38
Avatar
HONZ4
Člen
Avatar
HONZ4:5.12.2016 19:31

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;
    }
}
 
Nahoru Odpovědět
5.12.2016 19:31
Avatar
HONZ4
Člen
Avatar
HONZ4:5.12.2016 19:50

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;
}
 
Nahoru Odpovědět
5.12.2016 19:50
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Erik Šťastný
mkub:6.12.2016 0:38

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

 
Nahoru Odpovědět
6.12.2016 0:38
Avatar
josef kratky
Člen
Avatar
josef kratky:6.12.2016 16:52

Vyřešeno díky

 
Nahoru Odpovědět
6.12.2016 16:52
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na josef kratky
vajkuba1234:7.12.2016 13:35

Co treba napsat reseni, aby to mohlo i nekomu pomoct v budoucnu?

Nahoru Odpovědět
7.12.2016 13:35
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Libor Šimo (libcosenior):7.12.2016 14:38

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.

Nahoru Odpovědět
7.12.2016 14:38
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Libor Šimo (libcosenior)
vajkuba1234:7.12.2016 15:01

Pak to patri do pracovnich nabidek, si myslim. :)

Nahoru Odpovědět
7.12.2016 15:01
No hope, no future, JUST WAR!
Avatar
HONZ4
Člen
Avatar
Odpovídá na vajkuba1234
HONZ4:7.12.2016 18:43

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.

Editováno 7.12.2016 18:45
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
7.12.2016 18:43
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na HONZ4
vajkuba1234:7.12.2016 18:44

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. :)

Nahoru Odpovědět
7.12.2016 18:44
No hope, no future, JUST WAR!
Avatar
HONZ4
Člen
Avatar
Odpovídá na vajkuba1234
HONZ4:7.12.2016 18:50

Naprosto souhlasím. Ale v podstatě ve vláknu, ve kterém ani nezjistíš, na co se tazatel ptá, asi odpověď hledat nebudeš.

 
Nahoru Odpovědět
7.12.2016 18:50
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 42 zpráv z 42.