Combobox v menu – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Combobox v menu – .NET – Fórum – Programujte.comCombobox v menu – .NET – Fórum – Programujte.com

 

durmitor
~ Redaktor
0
Věrný člen
28. 9. 2007   #1
-
0
-

Ahoj,

mohl by mi prosím někdo na pár řádcích zdrojáku ukázat jak přistupovat k vlastnostem combo boxu v menu?

Díky

Ondra

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
durmitor
~ Redaktor
0
Věrný člen
28. 9. 2007   #2
-
0
-

Tak už sem na to přišel, stačí se odkazovat na instanci samotnou:



nastaToolStripMenuItem.Items.Add(s);

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
durmitor
~ Redaktor
0
Věrný člen
28. 9. 2007   #3
-
0
-

Narazil jsem na další problém. V aplikaci používím dataGridView a v některých sloupcích mám tlačítla a checkboxy. Mohl by mi někdo poradit, jak k nim přistupovat? Jak třeba při stisku tlačítka ve sloupci něco vykonat?

Předem díky

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
DeaLer+2
Hero
28. 9. 2007   #4
-
0
-

Zdar,
myslím, že není možný přiřadit nějakou událost přímo tlačítku nebo jinýmu objektu, takže si odchyť událost CellContentClick (nebo jinou, která bude vyhovovat) a tam už můžeš jednoduše zjistit v jakém řádku a v jakém sloupci došlo ke kliknutí.

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{
if (e.ColumnIndex == e.RowIndex)
{
MessageBox.Show("Došlo ke kliknutí.");
}
}


BTW: Co zrovna tebe přivádí do vod řízeného kódu? ;)

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
durmitor
~ Redaktor
0
Věrný člen
28. 9. 2007   #5
-
0
-

To DeaLer:

Díky, zkusím to...


Dělám elektroniku komunikující s PC a potřebuju k tomu udělat soft :-)

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
durmitor
~ Redaktor
0
Věrný člen
30. 9. 2007   #6
-
0
-

Mohl by si mi ještě prosím Tě poradit, jak přečtu hodnotu checkboxu v dataGridView? Nějak mi to nechce chodit. Prošel jsem už kupu diskusních fór, ale všude jsou viceméně nefunkční nebo žádné odpovědi.

použil jsem toto:



if (((bool)dataGridView1.Rows[radky].Cells["print"].Value == true)) MessageBox.Show("Je tam :-]"); else MessageBox.Show("Neni tam :-{");


První checkbox mi to vyhodnotí dobře, ale hned potom to vyhodí chybu:



Object reference not set to an instance of an object.


Celá funkce:



private void uložitToolStripMenuItem_Click(object sender, EventArgs e)
{
//dataGridView1.Rows.Add("aaa", "fdf", "fsdf", "fdfs");
int sloupce = 0, radky = 0;
using (StreamWriter sw = new StreamWriter("data.csv"))
{
for (radky = 0; radky < dataGridView1.RowCount - 1; radky++)
{
for (sloupce = 0; sloupce < 5; sloupce++)
{
sw.Write(dataGridView1.Rows[radky].Cells[sloupce].Value.ToString());
if (sloupce < 4) sw.Write(";"); else sw.WriteLine("");
}
if (((bool)dataGridView1.Rows[radky].Cells["print"].Value == true)) MessageBox.Show("Je tam :-]"); else MessageBox.Show("Neni tam :-{");
}
}
MessageBox.Show("Uloženo", "Data byla úspěšně uložena", MessageBoxButtons.OK, MessageBoxIcon.Information);


Díky

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
DeaLer+2
Hero
30. 9. 2007   #7
-
0
-

Zdravím,
nejdřív něco ke kódu.

for (radky = 0; radky < dataGridView1.RowCount - 1; radky++)

{
...
}


Vem si např. situaci, kdy máš 9 řádku - max. index řádku je 8, ale v tomto cyklu se dostaneš jen na index 7. Buď u podmínky použij <= nebo nesnižuj počet řádků. Nemyslíš, že by v tomto případě bylo lepší použít cyklus foreach ... ušetřil by sis trochu kódu a s ohledem na danou situaci by mohl být i vyšší výkon?

if (((bool)dataGridView1.Rows[radky].Cells["print"].Value == true)) MessageBox.Show("Je tam :-]"); else MessageBox.Show("Neni tam :-{");


Doporučuju takovej zápis nepoužívát, protože ztrácí na přehlednosti a při větších úpravách u něj ztratíš zbytečně moc času. Vždycky je lepší použít tento zápis.



if (((bool)dataGridView1.Rows[radky].Cells["print"].Value == true))
{
MessageBox.Show("Je tam :-]");
}
else
{
MessageBox.Show("Neni tam :-{");
}


Zapni si debugger a podívej se, kde přesně ta chyba vzniká (která proměnná/vlastnost vrací null). Pravděpodobně to bude přímo Value a stačí tam přidat další podmínku, ale pro jistotu ..

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
durmitor
~ Redaktor
0
Věrný člen
30. 9. 2007   #8
-
0
-

To DeaLer:
Díky, použil jsem raději foreach. Se zapisem podmínky je mi to jasné (čitelnost), ona tam bude jiná, tohle je jen test.Bohužel se mi ale nedaří zjisti, kde dělám chybu... mohl bych ti poslat celý projet?

Nahlásit jako SPAM
IP: ...–
Nejhorší není nemít práci. Nejhorší je nechtít práci...
DeaLer+2
Hero
30. 9. 2007   #9
-
0
-

To durmitor: Klidně mi to pošli na mail ... v průběhu dneška na to kouknu.

Nahlásit jako SPAM
IP: ...–
Dušan Janošík | web: djanosik.cz, @djanosik
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Menu - Název vlevo / Menu vpravo — založil Miner123

ComboBox — založil Jirka Penzes

ComboBox — založil curro70

Combobox — založil berni

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý