Pergunta : CONTRA C# 2008 fazer Não-Modal para comportar-se como modal

Eu estou desenvolvendo um winform que trabalhe fora de uma aplicação que tenha a CONTRA o conjunto de ferramentas. Eu criei todos meus formulários porque formulários modais como eu quero o processamento a transferir ao formulário chamado quando esse formulário estiver aberto. Eu descobri que há um erro nesse conjunto de ferramentas quando vem aos formulários modais. (os gelos da tela apenas). Eu fui dito para usar formulários não-modais e para controlar então eventos para fazer um formulário não-modal comportar-se como um formulário modal. Minha pergunta é que eventos devem monitor de I assim que o usuário não pode deixar o formulário até uma ou outra teclas de pressão nesse formulário que permitem que saam. Eu incluí o código completo abaixo. Esta edição veio acima com o evento amarrado a um datadridviewButtonCollumn que eu adicionei que permite o usuário aos números de trabalho da consulta (frmLookupJob). class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
>============================================================= notpretty " do class= " do id= " codeSnippet818596 do
= 0 do && e.RowIndex do == 0 de e.ColumnIndex)
            {

                    utilização (frmLookupJob ViewAgenciesByJobsForm = frmLookupJob novo ())
                    {
                        se (== DialogResult.OK de ViewAgenciesByJobsForm.ShowDialog (este))
                            dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Valor = ViewAgenciesByJobsForm.CellValue;
                    }  
            }
        }
        }
    }
==============================================================
JANELA DA CONSULTA
==============================================================
using o sistema;
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 parcial público da classe: DexUIForm
    {
        
        /* definem uma variável de corda para prender a corda da conexão *
        corda ConnectionString;

        /* definem as variáveis usadas na busca de corda *
        strSearch = "" da corda;
        int i;

        Alimentadores de conexão do SQL da instalação de/* *
        System.Data.SqlClient.SqlConnection confidencial DataConnection;
        System.Data.DataSet confidencial DataDataSet;
        System.Data.SqlClient.SqlCommand confidencial DataCommand;
        System.Data.SqlClient.SqlDataAdapter confidencial DataDataAdapter;
        corda pública CellValue {começ; jogo; }
      
        frmLookupJob público ()
        {
            InitializeComponent ();
                                  
            tentativa
            {
                SqlConnection DataConnection = GetConnection ();

                DataDataSet = System.Data.DataSet novo ();
                DataDataSet.CaseSensitive = falso;

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

                DataCommand.CommandText = “JOBNUMBER SELETO, AGÊNCIA da ORDEM de TRABALHOS por JOBNUMBER”;

                DataDataAdapter = System.Data.SqlClient.SqlDataAdapter novo ();
                DataDataAdapter.SelectCommand = DataCommand;
                DataDataAdapter.TableMappings.Add (“tabela”, “AgenciesByJobs”);
                DataDataAdapter.Fill (DataDataSet);

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

                dgvAgenciesByJobs.DataSource = DataDataSet.Tables [“AgenciesByJobs”] .DefaultView;
                dgvAgenciesByJobs.Columns [0]. Largura = 85;
                dgvAgenciesByJobs.Columns [0] .HeaderText = de “número trabalho”;
                dgvAgenciesByJobs.Columns [0] .ReadOnly = retificam;
                dgvAgenciesByJobs.Columns [1]. Largura = 95;
                dgvAgenciesByJobs.Columns [1] .HeaderText = da “código agência”;
                dgvAgenciesByJobs.Columns [1] .ReadOnly = retificam;

            }
            prendedor (exceção ex)
            {
                MessageBox.Show (ex. Mensagem);
            }
                   
        }
        
        btnExit_Click vago confidencial (remetente do objeto, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            DataConnection.Close ();
            isto. Fim ();
            retorno;
        }

        SqlConnection confidencial GetConnection ()
        {
            /* criam o leitor e a lima aberta que contêm a corda da conexão *
            TextReader tr = StreamReader novo (@ de " dinâmica C:\Program Files\Microsoft \ GP \ Addins \ GSE2000.INI ");

            /* leu a linha que contem a corda da conexão *
            ConnectionString = tr.ReadLine ();

            /* fecham o córrego *
            tr. Fim ();

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

            DataConnection do retorno;
        }

        dgvAgenciesByJobs_DoubleClick vago confidencial (remetente do objeto, EventArgs e)
        {
            int CurrentRow;

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

            DataConnection.Close ();
            isto. Fim ();
            retorno;

        }

        dgvAgenciesByJobs_KeyPress vagos confidenciais (remetente do objeto, KeyPressEventArgs e)
        {
            strSearch += e.KeyChar;

            se (== de e.KeyChar (carvão animal) Keys.Back)
            {
                se (strSearch.Length > 0) strSearch = strSearch.Substring (0, strSearch.Length - 2);
            }

            para (i = 0; i <= dgvAgenciesByJobs.RowCount - 1; i++)
            {
                se (dgvAgenciesByJobs [0, i]. Valor! = dgvAgenciesByJobs nulos do && [0, i]. Value.ToString () .StartsWith (strSearch.ToUpper ()))
                {
                    dgvAgenciesByJobs.Rows [i]. Selecionado = retificar;
                    dgvAgenciesByJobs.CurrentCell = dgvAgenciesByJobs [0, i];
                    se (dgvAgenciesByJobs.Rows [i]. == indicado falso)
                    {
                        dgvAgenciesByJobs.FirstDisplayedScrollingRowIndex = i;
                    }
                    retorno;
                }
            }        
        }
    }
    
}
class= do

Resposta : CONTRA C# 2008 fazer Não-Modal para comportar-se como modal

(No acesso VBA do MS) para ajustar o foco em alguns abrir o formulário, a sintaxe é:

   Formulários! YourFormName.SetFocus

Esperar que isto ajuda também.

; -)

JeffCoachman
Outras soluções  
 
programming4us programming4us