c# - DataGridView with ContextMenu assigned to column and a MessageBox -


i have dgv has datasource set bindinglist. there contextmenu assigned column in dgv. there menuitem set on contextmenu calls messagebox on click event.

everything works fine , methods called , messagebox yesno responses susppose to.

the problem having when messagebox's click event occurs (yes or no) it's job , goes away. if same routine called second time, again it's job no problem, reappears. if click yes or no goes away. if call third time messagebox appears again job , reappears twice. if everytime it's being called iterating , calling again amount of times. occur everytime it's called.

the bindinglist built using class nested properties , data elements present.

i tried using blank messagebox no dialogresults , no change. tried using dgv's raiselistchangedevents=false in contextmenu click event , dgv's cell enter click event.

i've stepped through code , and no matter class nested properties gets called , causes contextmenu's click event called again , again... figure design since bindinglist autoupdate when cell's value accessed or changed.

contextmenu's column button , readonly.

so how either catch messagebox after it's run first time or stop bindinglist auto updating. list draws data web reference , handle updates through methods provided api. reason i'm using bindinglist because dgv doesn't work list .

thank or guidance. (first time posting, have gathered , used lot of info here)

here's code:

_requestsview.autogeneratecolumns = false;             _edit.datapropertyname = "requestid";             _patient.datapropertyname = "patient";             _datesubmitted.datapropertyname = "date";             _completedby.datapropertyname = "completedby";             _completedon.datapropertyname = "completedon";             _procedure.datapropertyname = "procedure";             _stat.datapropertyname = "stat";             _viewreport.datapropertyname = "viewreport";             _selectedspecialist.datapropertyname = "selectedspecialist";             _status.datapropertyname = "status";             _rate.datapropertyname = "rating";              _requestsview.datasource = _requestsbinding; // _cancelrequest_click contextmenu menuitem  void _cancelrequest_click(object sender, eventargs e)     {          messagebox.show("test");     }  private void _requestsview_cellenter(object sender, datagridviewcelleventargs e)     {          if (_requestsview.currentrow != null)             if (_requestsview.currentrow.cells["_viewreport"].selected)                 try                 {                  var requestnumber = (int)_requestsview.currentrow.cells ["_viewreport"].value;                     var letter = api.client.getcompletedletter(usesession.sessionid,  requestnumber);                     var convertedletter = convert.frombase64string(letter);                     var requestnumbertostring = convert.tostring(requestnumber);                     var tmpfile = system.io.path.combine(system.io.path.gettemppath(), requestnumbertostring + @".pdf");                     var view = new viewletter(requestnumbertostring, tmpfile);                      file.writeallbytes(tmpfile, convertedletter);                      view._pdf.loadfile(tmpfile);                     view._pdf.performlayout();                     view._pdf.refresh();                     view._pdf.setshowtoolbar(true);                     view._pdf.setzoom(100);                     view.show();                     view.activate();                 }                 catch (exception ee)                 {                     messagebox.show(ee.message);                 }          if (_requestsview.currentrow != null)             if (_requestsview.currentrow.cells["_edit"].selected)                 _edit.contextmenustrip.show(cursor.position.x, cursor.position.y);          if (_requestsview.currentrow != null)             if (_requestsview.currentrow.cells["_rate"].selected)                 _rate.contextmenustrip.show(cursor.position.x, cursor.position.y);      }  public class requests {     private int _requestid;     private datetime _date;     private string _patient;     private string _completedby;     private string _completedon;     private string _procedure;     private string _stat;     private int _viewreport;     private specialists _selectedspecialist;     private string _status;     private int _rating;      public requests()     { }      public requests(string stat)     {         _stat = stat;     }      public int requestid     {         { return _requestid; }         set { _requestid = value; }     }      public datetime date     {         { return _date; }         set { _date = value; }     }      public string patient     {         { return _patient; }         set { _patient = value; }     }      public string completedby     {         { return _completedby; }         set { _completedby = value; }     }      public string completedon     {         { return _completedon; }         set { _completedon = value; }     }      public string procedure     {         { return _procedure; }         set { _procedure = value; }     }      public string stat     {         { return _stat; }         set { _stat = value; }     }      public int viewreport     {         { return _viewreport; }         set { _viewreport = value; }     }      public specialists selectedspecialist     {         { return _selectedspecialist; }         set { _selectedspecialist = value; }     }      public string status     {         { return _status; }         set { _status = value; }     }     public int rating     {         { return _rating; }         set { _rating = value; }     } } 

just wanted update , close it. figured out work around sets boolean true or false during different stages of events being called. if boolean set true return out of methods.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -