Síða 1 af 1

Fá MessageBox í Background?

Sent: Fös 11. Feb 2005 16:48
af Emizter
private void AddNewC_Click(object sender, System.EventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
System.Windows.Forms.DialogResult answer = MessageBox.Show("Þú hefur nú uppfært símaskrána","",MessageBoxButtons.OK,MessageBoxIcon.Information);
if( answer == DialogResult.OK )
{
ListViewItem Hlutur = new ListViewItem(nafn);
Hlutur.SubItems.Add(heimili);
Hlutur.SubItems.Add(gsm);
Hlutur.SubItems.Add(simi);
LV1.Items.AddRange(new ListViewItem[]{Hlutur});
}
}

(afsakið en ég fann ekki út hvernig maður gæti gert tab)

ég var að spá.. þetta er eiginlega eina leiðin sem ég get reddað mér sem mér dettur í hug til að geta uppfært ListView'ið...

Málið er nebbla að ég opna nýjann glugga og slæ þar inn upplýsingar, og sendi það svo aftur í fyrsta gluggan, en þetta vill ekki fara inn í ListView'ið öðruvísi en að vera í þessu falli, svo mér datt í hug að redda mér með að gera svona MessageBox, og þá myndi ListView'ið fyrst uppfærast þegar að ég væri búinn að koma upplýsinginum inn í breyturnar í staðinn fyrir að hafa þetta tómt.

En svo kemur alltaf MessageBox'ið upp yfir báða gluggana svo maður verður að ýta á OK fyrst áður en maður nær að senda niður, er ekki hægt að láta það bara fara yfir aðalgluggan eða einhvað.. eða kannski láta secondnary gluggan owna aðal or sum.

Takk fyrirfram

Sent: Fös 11. Feb 2005 20:28
af MezzUp
Gætir þurfta að setja inn tab í t.d. notepad og skella því svo sem [c0de] hingað. Like this: :)

Kóði: Velja allt

private void AddNewC_Click(object sender, System.EventArgs e)
{
   Form2 f2 = new Form2();
   f2.Show();
   System.Windows.Forms.DialogResult answer = MessageBox.Show("Þú hefur nú uppfært símaskrána","",MessageBoxButtons.OK,MessageBoxIcon.Information);
   if( answer == DialogResult.OK )
   {
      ListViewItem Hlutur = new ListViewItem(nafn);
      Hlutur.SubItems.Add(heimili);
      Hlutur.SubItems.Add(gsm);
      Hlutur.SubItems.Add(simi);
      LV1.Items.AddRange(new ListViewItem[]{Hlutur});
   }
}
En ég hef ekki hugmynd um hvernig á að leysa þetta. Spurja bara Danna á mánudaginn? Eða er þetta kannski heimaverkefni? :P

og já, færði þetta í „Hugbúnaðar- & Forritunarstofan“

Sent: Fös 11. Feb 2005 21:37
af Emizter
Hehehe, jááá geri það sko, ég nenni bara ekki að bíða sko... Hann var í vandræðum með þetta sjálfiur, eða þetta er eina lausnin sem mér dettur í hug núna sko.

Kannski hefur honum dorttið í hug einhverja lausn :)

En já þetta er reyndar "Heimadæmi" en hann hjálpar alveg með þetta, þetta er það erfitt miðað við að maður er nýbyrjaður í glugga forritun :)

Sent: Lau 12. Feb 2005 14:26
af Stutturdreki
Skil ekki alveg hvað þú ert að reyna að gera.. en..

Msg box poppar alltaf upp fremst.. held ég. Og þú lætur það opnast strax og þú ert búinn að gera Form2.Show()?

Vandamálið hjá þér virðist vera að koma gögnum úr From2 í Form1.

Hvaðan koma breyturnar 'nafn', 'heimili', 'gsm' og 'sími'? Ef þær eru skilgreindar í Form2, þá eru þær bara aðgengilegar úr þessu falli því að From2 er bara til í 'scope'-i AddNewC_Click() fallsins.

Form1 er líklega skilgreint sem Public og því ættirðu að geta gert úr Form2:

Kóði: Velja allt

Form1.LV1.Items.AddRange(new ListViewItem[]{Hlutur});

LV1 er væntanlega skilgreint í Form1 og scope þess hlutar er því bara í Form1. Reyndar ef LV1 er ekki Public er ekki hægt að nálgast það úr Form2..

Önnur, og sennilega 'réttari' leið er að búa til fall í Form1 td.:

Kóði: Velja allt

public void UpdatePhonebook(string strName, string strAddr, string strMobile, string strPhone) {
 ListViewItem Hlutur = new ListViewItem(strName);
 Hlutur.SubItems.Add(strAddr);
 Hlutur.SubItems.Add(strMobile);
 Hlutur.SubItems.Add(strPhone);
 LV1.Items.AddRange(new ListViewItem[]{Hlutur});
}

Þá ættirðu að geta kallað á þetta fall úr Form2 áður en þú lokar því.