vb.net - How can I make an array to show clicks made over a whole datagridview? -
the pourpose build 3xn array (3 columns,n rows),which shows/enumerate clicks made on datagriview.
3 columns column1: number of click, first click on datagridview. column2: e.columnindex of click on datagridview. column3: e.rowindex of click on datagridview.
n rows: row 1: info related first click made on dgv, i.e.: (1,3,7) (click 1, columnindex of click 3, rowindex of click 7) .... row n; total number of clicks made on dgv.
here best code have:
private accums new arraylist private sub clickmouse(sender object, e datagridviewcellmouseeventargs) handles datagridview.cellmouseclick accums.add(new integer() {e.clicks, e.columnindex, e.rowindex}) end sub
this should create structure required (if there no error :d):
dim clikar(2,-1) integer '-1 described in msdn. have never tried it. private sub clickmouse(sender object, e datagridviewcellmouseeventargs) handles datagridview.cellmouseclick dim clicknum integer = ubound(clickar,2)+1 redim preserve clickar(2,clicknum) clickar(0,clicknum) = clicknum clickar(1,clicknum) = e.columnindex clickar(2,clicknum) = e.rowindex 'e.clicks can used distinguish double clicks. end sub the problem of solution on each click array recreated , values copied into, not efficient. can create large array beforehand not efficient too. opinion original solution better. have modified closer required structure first item in array not necessary because index or arraylist
private accums new arraylist private sub clickmouse(sender object, e datagridviewcellmouseeventargs) handles datagridview.cellmouseclick accums.add(new integer() {accums.count, e.columnindex, e.rowindex}) end sub i both cases using number of created "records" counter. if separate counter more convenient can declared on class level , incremented in event procedure.
Comments
Post a Comment