c# - How to stop MessageBox repetition when LinkLabel in DataGridView column is clicked -


1.this form:

enter image description here

2.message pops-up when linklabel in datagridview clicked:

enter image description here

private void button3_click(object sender, eventargs e) {     datagridview1.columns.clear();     con.open();     sqldataadapter da          = new sqldataadapter("select casetype, caseno, year cases casetype = '"                              + textbox2.text + "'", con);     datatable dt = new datatable();     da.fill(dt);     con.close();      datagridview1.datasource = dt;      linklabel link = new linklabel();     link.text = "more information !";     datagridviewlinkcolumn col2 = new datagridviewlinkcolumn();     col2.name = "column2";     col2.headertext = "information";     datagridview1.columns.add(col2);     datagridview1.cellcontentclick +=          new datagridviewcelleventhandler(datagridview1_cellcontentclick_1);      (int = 0; < dt.rows.count; i++)     {         datagridview1.rows[i].cells[3].value = link.text;     } }  private void datagridview1_cellcontentclick_1(object sender, datagridviewcelleventargs e) {     //datagridview1.rows[datagridview1.currentrow.index].cells[1].value.tostring()      con.open();     sqldataadapter da          = new sqldataadapter("select * cases caseno = '"                               + datagridview1.rows[e.rowindex].cells[1].value.tostring()                               + "'", con);     dataset ds = new dataset();     da.fill(ds);     con.close();      datetime current = datetime.now;      (int = 0; < ds.tables[0].rows.count; i++)     {         messagebox.show("1.case type = "              + ds.tables[0].rows[i]["casetype"].tostring()              + "\n\n2.case no = " + ds.tables[0].rows[i]["caseno"].tostring()              + "\n\n3.case year = " + ds.tables[0].rows[i]["year"].tostring()              + "\n\n4.case name = " + ds.tables[0].rows[i]["name"].tostring()              + "\n\n5.type = " + ds.tables[0].rows[i]["type"].tostring()              + "\n\ntime :- " + current.tostring() + "",              "message box", messageboxbuttons.ok, messageboxicon.asterisk);     } } 

now, each time when provide new search parameters in textbox , click button3 button results shown in datagridview linklabel. when click linklabel messagebox pops-up repetition increments 1 when provide new search parameters in textbox , new data in datagridview according search parameters. number of messagebox increases number of time search. can please tell me how show messagebox once when click linklabel after loading datagridview providing different parameters or search using textbox.

your message box shows multiple times because:

  • you put message box in loop. call message box once , pass need show. if want show multiple messages, can put messages in separated lines in message box.

  • also adding cellcontentclick each time load data. add handler once. can move code assign handler event, form load event.

also check if clicked cell 1 want:

private void datagridview1_cellcontentclick(object sender, datagridviewcelleventargs e) {     //check if clicked cell link label column (at index =3)     if(e.columnindex == 3 && e.rowindex>=0)     {         //e.rowindex index of clicked row         //use this.datagridview1.rows[e.rowindex] find clicked row.     } } 

to set text link label column, should manipulate link label column , creating link label control useless, example if col2 link label column:

col2.usecolumntextforlinkvalue = true; col2.text="more information !"; 

Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -