Questione : CONTRO C# 2008 DataGridViewButtonColumn inforna due volte

Ho aggiunto un tasto di occhiata al mio datagridview aggiungendo un datagridviewButtonCoulumn. che scatto il tasto di occhiata. lo schermo di occhiata compare, il doppio evento di scatto riporta il valore, lo schermo di occhiata è supposto per andare via ma il problema che ho è che la finestra di occhiata inforna ancora e chiude lo schermo a chiave. Che cosa sta facendo lo schermo di occhiata infornare ancora? class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
>namespace notpretty PopulateJobLinkerRTE " del class= " del id= " codeSnippet796764 del
 0)
            {

                se (posizione di segnale minimo del == di ViewAgenciesByJobsForm)
                {
                    ViewAgenciesByJobsForm = nuovo frmLookupJob ();
                }
                altrimenti
                {
                    se (== di ViewAgenciesByJobsForm.Created falso)
                    {
                        ViewAgenciesByJobsForm = nuovo frmLookupJob ();
                    }
                }

                ViewAgenciesByJobsForm.ShowDialog ();
                /* ViewAgenciesByJobsForm.Show (); 
                ViewAgenciesByJobsForm.Activate (); */
                dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Valore = ViewAgenciesByJobsForm.CellValue;

            }
        }
        }
    }
class= del

Risposta : CONTRO C# 2008 DataGridViewButtonColumn inforna due volte

Ciao,
  è pratica ottimale usare “using„ per generare, mostrare e distruggere le forme modali. dovreste controllare se l'utente è cambiato qualcosa e scattato accettare il tasto (che un tasto regola DialogResult = DialogResult.OK) .if che scatta il tasto “dell'annullamento„ (che un tasto regola DialogResult = DialogResult.Cancel), voi non dovreste fare il valore delle cellule dell'aggiornamento. hanno attaccato il campione.

ViewAgenciesByJobsForm.ShowDialog (questo)

regola la forma corrente come forma del genitore.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
se (&& del == 0 di e.ColumnIndex e.RowIndex > 0)
{
  usando  (frmLookupJob ViewAgenciesByJobsForm =
                       ViewAgenciesByJobsForm = nuovo frmLookupJob ())
  {
     se (== DialogResult.OK di ViewAgenciesByJobsForm.ShowDialog (questo)))
         dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Valore                   = ViewAgenciesByJobsForm.CellValue;

   }
}


nel frmLookupJob, qualcosa come:

(1) evento di scatto del btnOk:
    CellValue = “il mio nuovo valore„
    DialogResult   =DialogResut.OK;

(2) evento di scatto del btnCancel:
    DialogResult   =DialogResut.Cancel;
Altre soluzioni  
 
programming4us programming4us