To dannyk : To je pomalý (mám v tabulce něco kolem 65000 záznamů), snažim se nakopat to do Listu, kterej vyhledává pomocí algoritmů, ale základní představu sem získal, díky.
Příspěvky odeslané z IP adresy 83.208.77.–
Zdravím. Můj problém : Mám základní formulář , má nastaveno ShowIntaskbar na true, neni to MDI container (prostě normální formulář, co je vidět na liště). Z tohoto formuláře se spouští jiné formuláře, které již mají nastaveno ShowInTaskbar na false. Problém spočívá v tom, že pokud při běhu aplikace otevřu ze základního formuláře ten druhej a přepnu se na jinou úlohu ve Windows, tak když se přepnu zpět na tuhle, zobrazí se základní formulář a já potřebuju, aby se zobrazil ten, co sem z něj otevřel (oba jsou stejně velký a oba se otevíraj na stejnym místě, aby se překrejvaly - to potřebuju). Neví někdo jak na to?
Díky
To z_moravec : Ano, návod je v pohodě, předpokládá ovšem znalost XML, což je asi sice v dnešní době normální, ale pokud někdo začíná s .NETem jako s něčim úplně novym (já sem na něj přešel před půl rokem z FoxPro a nestačm se divit ani orientovat), je XML další poměrně obsáhlej balík k nastudování. Další věc je v tom, že .Net je prostě tak obsáhlej, že ho jeden člověk prostě neprozkoumá celej (pokud se tim neživí, a mnohdy ani tehdy ne) - já např. slyšel o config souborech a že se to dá dělat i takhle poprvé až od Chrastyho, kterej mi tímto zase (jako již několikrát) rozšířil obzory (za což mu díky). V prográmcích, co si dělám, to dělám tak, jak sem to popsal, protože to byla prostě jednoduchá a i jediná alternativa, kterou sem znal (přečet sem o C# asi 5 učebnic - od Wroxu po Microsoft Press a o tomhle sem tam nenašel nic).
To Chrasty : Nic proti, ale pro někoho, kdo tenhle Namespace slyší poprvý je dost těžký se v něm pořádně vyznat. Nejjednodušší způsob je asi fakt uložit to do obyč. txt souboru (ať už má příponu, jakou chce) a ve formě pole to načíst a s tim už si pak dělat co je potřeba. Neřikám, že to je podle nejnovějších trendů, ale funguje to :)
nebo si to můžeš předem vypočítat pomocí kombinatoriky (kombinace bez opakování budou myslim to pravé, ale nejsem si jistý, naposledy sem měl matiku před 15 lety, navíc na webu najdeš spoustu prográmků, který vypíšou všechny kombinace kam je libo) a výsledky uložit do pole, pak už jenom brát řádek za řádkem a podle toho nastavovat hráče.
pokud to bude první možnost :
předpoklad : jména textboxů : Cena0,Cena1,Cena2..., Počet0,Počet1,Počet2..., proměnná int, která se zvyšuje s klikem
Funkce na button1.click() :
private void button1_Click(object sender, EventArgs e)
{
string cena = "Cena" + i.ToString();
string počet = "Počet" + i.ToString();
int výsledek = Int16.Parse(this.Controls[cena].Text) * Int16.Parse(this.Controls[počet].Text);
this.label1.Text = výsledek.ToString();
i++;
//tady udělat nebo zviditelnit nový textboxy se jmény o jedno číslo vyšší
}
nemám možnost to momentálně odzkoušet, a nikdy jsem nepotřeboval vytvářet komponenty za běhu aplikace, takže nevim, jak to bude fungovat (pokud budou předpřipravený a bude se nastavovat jenom visible na true, tak by to fungovat mělo), dneska se ke kompu už nedostanu, ale mrku eště na to, zatim to ber spíš jako inspiraci k dalším průzkumům.
Jenom bych potřeboval vědět, jak to funguje (moje představa : na formuláři sou 2 textboxy a tlačítko, uživatel vyplní čísla v textboxech pro cenu a počet a zmáčkne tlačítko, vypočte se to a výsledek se někam zobrazí - asi na label, a zobrazí se další dva textboxy, které jsou prázdné a připravené pro zadání, uživatel vyplní a stiskne zase tlačítko atd., ale možná, že si uživatel může naklikat prázdnejch textboxů 10 a pak je editovat a výsledky zobrazovat při opuštění textboxu počet).
takže t akolekce Controls na formuláři je obsažená v this.Controls, k jednotlivým položkám kolekce se přistupuje stejně jako v jiné kolekci pomocí indexu, např. this.Controls[1], nebo pomocí jeho jména, např. this.Controls["cena3"]. Pokud znáš jméno textboxu, což bys měl, protože ho zadáváš při vytvoření, je jednoduché vytáhnout do proměnný číslo v jeho Textu. Nevim přesně, jak funguje program a kam se vypisujou výsledky, popř. jestli je možné mít dohromady textboxy prázdné i vyplněné dohromady, pokud ano, pak se dá pro každej Control zjistit hodnota a vypočítat pouze ty, který sou vyplněný : např.
foreach (Textbox políčko in this.Controls) //projde všechny Textboxy na formuláři
{
if (podmínka pro vyplnění, např. políčko.Text.Length>0, popř. v kombinaci s názvem)
{
tady funkce, co např. zjistí jméno políčka a přiřadí správnej Textbox s počtem k ceně
vypočítá se součin a zobrazí se někde
}
}
je potřeba samozřejmě ošetřit případy, kdy je vyplněná cena a není počet apod.
Na bližší podrobnosti bych potřeboval bližší popis toho, co to má dělat a jak to má dělat, ale snad to pro inspiraci bude stačit takhle.
Teoreticky by se to dalo řešit následovně :
Existuje kolekce prvků formuláře, pokud si textboxy, které přidáváš na formulář rozumně pojmenuješ (např. Textbox pro cenu jako txtCena1), dá se k nim pak přistupovat jako k prvkům této kolekce a funkcí Parse, popř. TryParse třídy Int, nebo jiné třídy (pokud chceš i desetinná čísla), kde předáš jako argument textbot.Text to narvat do proměnný a vynásobit, popř. pak zobrazit výsledek v jiném Controlu.
Něco podobného jsem už řešil, ale nejsem doma, jinak bych ti sem hodil i ukázku.
Podle mě je to jedno, jestli je jedna část psaná v C# a další v VB.NET, když se to zkompiluje, tak je z toho stejně univerzální jazyk, takže výsledná aplikace může tahat nějaký procedury z .dllka v C# a jiný z jinýho .dllka ve VB. Mělo by to chodit bez problémů (i typy sou kompatibilní).
To marros11 : U toho druhýho formuláře musíš dát
Form1 f1=new Form1(); //vytvoří instanci formuláře 1.typu
f1.Show(); //ukáže jí
this.Hide(); //schová aktuální formulář typu 2
u typu 1 zadáš to samý :
Form2 f2=new Form2(); //vytvoří instanci formuláře 2.typu
f2.Show(); //ukáže jí
this.Hide(); //schová aktuální formulář typu 1
budeš mít otevřenej vždycky jenom jeden formulář, potíž je v tom, že se zbytečně tvoží nový instance, pokud budeš chtít v těch formulářích uchovávat nějaký data, bude to o dost složitější
Chrasty má recht, přes Dictionary je to lepší, ale pokud bys to přesto chtěl udělat pomocí "obyčejnejch" stringovejch polí, jde to taky :
writeline("Zadej uživatele");
string username=readline();
cyklem projet pole uživatelů, porovnat se zadanym, vyhodit buď index, nebo chybu neznámý uživatel
writeline("Zadej heslo");
string heslo=readline();
porovnat ho s heslem uloženým v druhym poli pod stejnym indexem.
omlouvám se za to, že to neni všechno v kódu, ale nemám k dispozici VS, na kterym bych ten kód odladil tak, aby tam nebyly chyby.
marros11 napsal:
To Chrasty :
Parada!!! zapomnel jsem si vytvorit instanci tridy Form2 f2... Jak proste :)
BTW, pokud ted prepinam formulare mezi sebou tak mi porad vyskakujou nova okna. Lze to resit tak ze budu vzdy uzavirat (Application.exit()) kazdy formular po prechodu do noveho okna, nebo se to resi jinak? Jak? :)
Dekuji.
Pokud to dobře chápu, vyskakujou ti stále nový formuláře (při zavolání form1 z form2 ti vyskočí novej formulář a máš tam 3).
Buď se to dá řešit tím, že při přechodu zavoláš Form2.Hide(), nebo zkus řádek, kde vytváříš novou instanci přesunout z menu jinam a do menu pod form2 dát jenom řádek na ukázání (pokud to tak už nemáš).
je to provázaný tak, že ID v tabulce číselníku je PK, ID v tabulce skladu je FK, 1 to many vztah. Jinak je to tak, že prostě přijde soubor s číselníkem, kterej musim aplikovat na sklad (je to daný zezhora, já jenom musim vzít data z toho souboru a změnit ceny, popř. vymazat, popř. doplnit nový výrobky), je to tak, že číselník platí k určitýmu datu, od toho data musí být sklad přeceněn, popř. doplněn, popř. smazány položky, co už tam nemají co dělat, je to trochu komplikovaný.
Možná to sem nepatří, ale potřebuju to udělat v C# : mám tabulky (seznam výrobků a sklad, propojené přes id sloupec). Potřebuju 1x měsíčně update seznamu (něco vypadne, něco se přidá, něco se změní), bohužel nejde kvůli provázanosti tabulku smazat a načíst nová data ze souboru. Nenapadá někoho, jak to řešit (není potřeba program, ale spíš teoreticky, program si spáchám sám), nechce se mi porovnávat každej z 5000 řádků a buď ho přidat, nebo změnit, nebo smazat.
Díky Pebble
Zdravím. Mám tabulku o 5000 záznamech (seznam výrobků) , na kterou je navázána další tabulka (sklad) s ní související přes jeden sloupec. Potřebuju 1x do měsíce aktualizovat ten seznam výrobků, protože se u každé položky mění spousta věcí, některé položky se přidají a některé vypadnou. Bohužel to nejde udělat tak, že bych seznam smazal a ze souboru tam "nakopal" nový kvůli tomu skladu. Poradí mi někdo, jak to mám řešit?
Díky
asi takhle, mě to funguje:
{
Console.WriteLine("Zadej čísla oddělená mezerou");
string[] číslaString = Console.ReadLine().Split(' ');
int[] číslaInt = new int[číslaString.Length];
for (int i = 0; i < číslaString.Length; i++)
číslaInt[i] = Int32.Parse(číslaString[i]);
}
Čau, dá se nějak zjistit, jaký číslo má např. button3 v kolekci Controls formuláře, na kterym je, pokud možno přímo nějakym způsobem u toho tlačítka (nějakej index nebo tak něco, ne TabIndex, to je něco jinýho). Potřebuju to číslo předat jako jeden z parametrů určitý funkci, která pak s tim dotyčnym něco provede (třeba změní backcolor).
Díky
Ještě se chci zeptat, jak zamezit blikání formuláře při překreslování (pokud tam mám 30 tlačítek a potřebuju ho překreslit vždycky, když se aktivuje, tak to nehorázně bliká), do jakýho Eventu to mám dát, aby to neblikalo, ale překreslilo se to vždycky, když se stane aktivní?
Díky
Zdravím. Mám formulář a na něm 30 tlačítek, jejich visible je na false, ze souboru přečtu číslo (to umim:) a potřebuju podle toho čísla zviditelnit pouze tolik prvních tlačítek, kolik je číslo (např. přečtu 3, nastavim visible na prvních 3 tlačítkách na true). Dá se to udělat nějakou funkcí, abych to nemusel rozlišovat pro každý číslo zvlášť?
Díky moc Pebble
Možná že bys moh udělat objekt místnost, kde by bylo pole(nebo spíš kolekce) předmětů, popis, směry, kam se dá formou vlastností a funkcí apod. a potom dělat jenom instance týhle obecný třídy pro každou místnost zvlášť, nebo to všechno uložit do nějaký formy databáze a z ní to brát. Těžko říct, co bude složitější.
Zdravím. Když mám TabControl se třemi stránkami, dá se nějak zablokovat přístup na ty zbývající dvě(aby nešly vybrat, nebo nebyly vidět)? A pak ještě jak se přepnout na další TabPage bez klikání na záložku, potřebuju se na něj přepnout, když uživatel stiskne tlačítko na aktuální TabPage (např. po napsání hesla do TextBoxu a validaci).
Díky Pebble
To mnn : jo, teď už to de, nevim, co sem včera dělal, ale nefungovalo to, každopádně díky.
To t0m45 : To neni ono, já potřebuju, aby se stisklo při Enteru jenom tehdy, když má fokus, jindy ne, AcceptButton ale takhle funguje, prostě jenom potřebuju z eventu Keypress přejít na click
Zdravím, prosím, potřebuji, aby se mi po stisku klávesy Enter na tlačítku volala událost Click, stejně jako se volá při stisku mezerníku, nebo kliknutí myší, jak to mám udělat, děkuji moc.
Pebble
Zdravím. Existuje jiný (jednodušší) způsob, jak nahrát comma separated value soubor do již existující tabulky v SQL serveru, než nahrát si ho jako pole, který pak překopat do tý tabulky? Neexistuje nějakej přímej příkaz (jako byl třeba ve FoxPro append from)? Díky Pebble
To mephi : Díky moc.
To djanosik : Řekněme že dělám v krámě a přijde mi zboží, který má čárovej kód, ale ten mi nevyhovuje, potřebuju si udělat svuj vlastní, kterej si pak musim vytisknout na obyčejnou etiketu a přelepit ten starej čárovej kód, abych to zboží potom dostal přes čtečku do počítače, kde s nim něco provedu. Jde mi o to, jak vytisknout přímo ten čárovej kód na normální tiskárně. Pebble
Zdravím, ještě jeden dotaz.
Jak tisknout v .netu (c#) čárovej kód, používá se na to nějakej speciální font, nebo jak?
Díky moc. Pebble
To djanosik : Díky moc
Zdravím. Eště bych se rád zeptal, jestli existuje nějaká kniha (třeba i v angličtině), kde by byl přehled jednotlivejch podtříd třídy System a k nim vysvětlení, na co ta podtřída je a nejzákladnější metody, hledat to jednotlivě v dokumentaci k visual studiu je strašnej vopruz. Díky Pebble
Zdravím, rád bych se dověděl, jestli .net(c#) podporuje převody do pdf a kde je to uložený, pokud mi poradíte, budu rád (jakej class, popř. kde to najdu, není-li to součástí standartního .netu). Díky Pebble
To Chrasty : Thx moc.
Zdravím. Jakou funkcí se zjistí v C# rozlišení obrazovky(ne formuláře, ale screenu)?
Díky moc. Pebble