Question : CONTRE C# 2008 rendre Non-Modal pour se comporter comme modal

Je développe un winform qui fonctionne outre d'une application qui a a CONTRE la trousse à outils. J'ai créé toutes mes formes car les formes modales comme je veux le traitement à transférer à la forme appelée tandis que cette forme est ouverte. J'ai découvert qu'il y a un bogue dans cette trousse à outils quand il vient aux formes modales. (les gels d'écran juste). J'ai été dit pour employer les formes non-modales et puis pour commander des événements pour faire une forme non-modale se comporter comme une forme modale. Ma question est quel événements doivent moniteur d'I ainsi l'utilisateur ne peut pas laisser la forme jusqu'à l'un ou l'autre boutons pressants sur cette forme qui leur permettent de partir. J'ai inclus le code complet ci-dessous. Cette issue a été soulevée avec l'événement attaché à un datadridviewButtonCollumn que je me suis ajouté qui permet l'utilisateur aux numéros de JOB de consultation (frmLookupJob). class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
352 :
353 :
354 :
355 :
356 :
357 :
358 :
359 :
360 :
361 :
362 :
363 :
364 :
365 :
366 :
367 :
368 :
369 :
370 :
371 :
372 :
373 :
374 :
375 :
376 :
377 :
378 :
379 :
380 :
381 :
382 :
383 :
384 :
385 :
386 :
387 :
388 :
389 :
390 :
391 :
392 :
393 :
394 :
395 :
396 :
397 :
398 :
399 :
400 :
401 :
402 :
403 :
404 :
405 :
406 :
407 :
408 :
409 :
410 :
411 :
412 :
413 :
414 :
415 :
416 :
417 :
418 :
419 :
420 :
421 :
422 :
423 :
424 :
425 :
426 :
427 :
428 :
429 :
430 :
431 :
432 :
433 :
434 :
435 :
436 :
437 :
438 :
439 :
440 :
441 :
442 :
443 :
444 :
445 :
446 :
447 :
448 :
449 :
450 :
451 :
452 :
453 :
454 :
455 :
456 :
457 :
458 :
459 :
460 :
461 :
462 :
463 :
464 :
465 :
466 :
467 :
468 :
469 :
470 :
471 :
472 :
473 :
474 :
475 :
476 :
477 :
478 :
479 :
480 :
481 :
482 :
483 :
484 :
485 :
486 :
487 :
488 :
489 :
490 :
491 :
492 :
493 :
494 :
495 :
496 :
497 :
498 :
499 :
500 :
501 :
502 :
503 :
504 :
505 :
506 :
507 :
508 :
509 :
510 :
511 :
512 :
513 :
514 :
515 :
>============================================================= " de l'id= " codeSnippet818596 de
= 0 de && e.RowIndex de == 0 d'e.ColumnIndex)
            {

                    utilisation (frmLookupJob ViewAgenciesByJobsForm = nouveau frmLookupJob ())
                    {
                        si == DialogResult.OK (de ViewAgenciesByJobsForm.ShowDialog (ceci))
                            dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Valeur = ViewAgenciesByJobsForm.CellValue ;
                    }  
            }
        }
        }
    }
==============================================================
FENÊTRE DE CONSULTATION
==============================================================
using le système ;
using System.Collections.Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Data.SqlClient ;
using System.Drawing ;
using System.IO ;
using System.Text ;
using System.Windows.Forms ;
using Microsoft.Dexterity.Bridge ;
using Microsoft.Dexterity.Applications ;
using Microsoft.Dexterity.Shell ;

namespace PopulateJobLinkerRTE
{
    frmLookupJob partiel public de classe : DexUIForm
    {
        
        /* définissent une variable de corde pour tenir la corde de raccordement *
        corde ConnectionString ;

        /* définissent des variables utilisées dans la recherche de chaîne de caractères *
        strSearch = "" de corde ;
        international i ;

        Gestionnaires de connexion de l'installation SQL de/* *
        System.Data.SqlClient.SqlConnection privé DataConnection ;
        System.Data.DataSet privé DataDataSet ;
        System.Data.SqlClient.SqlCommand privé DataCommand ;
        System.Data.SqlClient.SqlDataAdapter privé DataDataAdapter ;
        corde publique CellValue {obtenir ; ensemble ; }
      
        frmLookupJob public ()
        {
            InitializeComponent () ;
                                  
            essai
            {
                SqlConnection DataConnection = GetConnection () ;

                DataDataSet = nouveau System.Data.DataSet () ;
                DataDataSet.CaseSensitive = faux ;

                DataCommand = nouveau System.Data.SqlClient.SqlCommand () ;
                DataCommand.Connection = DataConnection ;

                DataCommand.CommandText = « JOBNUMBER CHOISI, AGENCE d'ORDRE de FABRICATIONS PAR JOBNUMBER » ;

                DataDataAdapter = nouveau System.Data.SqlClient.SqlDataAdapter () ;
                DataDataAdapter.SelectCommand = DataCommand ;
                DataDataAdapter.TableMappings.Add (« Tableau », « AgenciesByJobs ») ;
                DataDataAdapter.Fill (DataDataSet) ;

                dgvAgenciesByJobs.ReadOnly = faux ;
                dgvAgenciesByJobs.RowHeadersVisible = faux ;
                dgvAgenciesByJobs.AllowUserToResizeColumns = faux ;
                dgvAgenciesByJobs.AllowUserToResizeRows = faux ;

                dgvAgenciesByJobs.DataSource = DataDataSet.Tables [« AgenciesByJobs »] .DefaultView ;
                dgvAgenciesByJobs.Columns [0]. Largeur = 85 ;
                dgvAgenciesByJobs.Columns [0] .HeaderText = « numéro de JOB » ;
                dgvAgenciesByJobs.Columns [0] .ReadOnly = rectifient ;
                dgvAgenciesByJobs.Columns [1]. Largeur = 95 ;
                dgvAgenciesByJobs.Columns [1] .HeaderText = « code d'agence » ;
                dgvAgenciesByJobs.Columns [1] .ReadOnly = rectifient ;

            }
            crochet (exception ex)
            {
                MessageBox.Show (ex. Message) ;
            }
                   
        }
        
        btnExit_Click vide privé (expéditeur d'objet, EventArgs e)
        {
            DialogResult = DialogResult.Cancel ;
            DataConnection.Close () ;
            ceci. Fin () ;
            retour ;
        }

        SqlConnection privé GetConnection ()
        {
            /* créent le lecteur et le dossier ouvert contenant la corde de raccordement *
            TextReader TR = nouveau StreamReader (@ " dynamique de C:\Program Files\Microsoft \ généraliste \ Addins \ GSE2000.INI ") ;

            /* a lu la ligne contenant la corde de raccordement *
            ConnectionString = tr.ReadLine () ;

            /* ferment le jet *
            TR. Fin () ;

            DataConnection = nouveau System.Data.SqlClient.SqlConnection (ConnectionString) ;
            DataConnection.Open () ;

            DataConnection de retour ;
        }

        dgvAgenciesByJobs_DoubleClick vide privé (expéditeur d'objet, EventArgs e)
        {
            international CurrentRow ;

            CurrentRow = dgvAgenciesByJobs.CurrentCell.RowIndex ;
            dgvAgenciesByJobs.CurrentCell = dgvAgenciesByJobs [0, CurrentRow] ;
            CellValue = dgvAgenciesByJobs.CurrentCell.Value.ToString () ;
            DialogResult = DialogResult.OK ;
            strSearch = "" ;

            DataConnection.Close () ;
            ceci. Fin () ;
            retour ;

        }

        dgvAgenciesByJobs_KeyPress vides privés (expéditeur d'objet, KeyPressEventArgs e)
        {
            strSearch += e.KeyChar ;

            si (== d'e.KeyChar (char) Keys.Back)
            {
                si (strSearch.Length > 0) strSearch = strSearch.Substring (0, strSearch.Length - 2) ;
            }

            pour (I = 0 ; i <= dgvAgenciesByJobs.RowCount - 1 ; i++)
            {
                si (dgvAgenciesByJobs [0, I]. Valeur ! = dgvAgenciesByJobs nuls de && [0, I]. Value.ToString () .StartsWith (strSearch.ToUpper ()))
                {
                    dgvAgenciesByJobs.Rows [I]. Choisi = rectifier ;
                    dgvAgenciesByJobs.CurrentCell = dgvAgenciesByJobs [0, I] ;
                    si (dgvAgenciesByJobs.Rows [I]. == montré faux)
                    {
                        dgvAgenciesByJobs.FirstDisplayedScrollingRowIndex = I ;
                    }
                    retour ;
                }
            }        
        }
    }
    
}
class= de

Réponse : CONTRE C# 2008 rendre Non-Modal pour se comporter comme modal

(Dans MS Access VBA) pour placer le foyer sur en ouvrir la forme, la syntaxe est :

   Formes ! YourFormName.SetFocus

Espérer que ceci aide aussi bien.

; -)

JeffCoachman
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us