Frage : GEGEN C# 2008 Nicht-Modal bilden, sich zu benehmen, wie modal

Ich entwickele ein winform, das weg von einer Anwendung arbeitet, die a GEGEN Toolkit hat. Ich verursachte alle meine Formen da modale Formen, wie ich auf wünsche die benannte Form zu bringen die Verarbeitung, während diese Form geöffnet ist. Ich entdeckt, dass es eine Wanze in diesem Toolkit gibt, wenn sie zu den modalen Formen kommt. (die Fröste des Schirmes gerade). Ich erklärt worden, um nicht-modale Formen zu benutzen und Ereignisse dann zu steuern, um eine nicht-modale Form wie eine modale Form benehmen zu lassen. Meine Frage ist, welche Ereignisse i-Monitor müssen, also der Benutzer die Form bis jeden betätigenden Knöpfe nicht auf dieser Form lassen kann, die sie gehen lassen. Ich eingeschlossen den kompletten Code unten en. Diese Ausgabe aufkam mit dem Ereignis be, das an einem datadridviewButtonCollumn gebunden, das ich addierte, der den Benutzer zu den Nachschlagen Jobnummern (frmLookupJob) erlaubt.
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:
6:
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:
=============================================================
OPENNING DES PROGRAMMS
=============================================================
namespace PopulateJobLinkerRTE
{
    allgemeine Kategorie GPAddIn: IDexterityAddIn
    {
        Schnittstelle //-IDexterityAddIn
        /* Unterhalt ein Hinweis auf dem Außenstand-Verhandlung-Eintragungs-Verteilungsschirm *
        statisches frmViewJobLinker ViewJobLinkerForm;

        /* verursachen einen Hinweis auf dem Außenstand-Verhandlung-Eintragungs-Verteilungsschirm *
        statisches RmSalesDistributionForm RmSalesDistributionForm = Dynamics.Forms.RmSalesDistribution;
        statisches RmSalesDistributionForm.RmSalesDistributionWindow RmSalesDistributionWindow = RmSalesDistributionForm.RmSalesDistribution;

        
        Öffentlichkeitslücke initialisieren ()
        {
            /* hinzufügen das Menüeinzelteil dem Außenstand-Verhandlung-Eintragungs-Verteilungsschirm unter zusätzlichem em *
            /* diese Menüwahl ist Verteilungen CTRL-J des Ansicht-Job-Verknüpfungsprogramm-GL *
            RmSalesDistributionForm.AddMenuHandler (ViewJobLinker, „Ansicht-Job-Verknüpfungsprogramm-Verteilungen“, „J“);
        }

        Die/* Methode, zum der Verteilungen der Ansicht-Reihen-GL von den Payables zu öffnen aufstapeln Eintragungs-Fenster *
        Öffentlichkeit leeres ViewJobLinker (Gegenstandabsender, EventArgs e)
        {
            wenn (ViewJobLinkerForm == Null || ViewJobLinkerForm.Created == falsch)
            {
                ViewJobLinkerForm = neues frmViewJobLinker ();
            }

            ViewJobLinkerForm.ShowDialog ();
        }

    }
==============================================================
SÄTZE ANZEIGEN UND NACHSCHLAGEN-FENSTER ZUR VERFÜGUNG STELLEN
==============================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Microsoft.Dexterity.Bridge;
using Microsoft.Dexterity.Applications;
using Microsoft.Dexterity.Shell;
using Microsoft.Dexterity.Applications.DynamicsDictionary;

namespace PopulateJobLinkerRTE
{
    allgemeines teilweises Kategorie frmViewJobLinker: DexUIForm
    {

        /* verursachen einen Hinweis auf dem Außenstand-Verhandlung-Eintragungsschirm *
        statisches RmSalesEntryForm RmSalesEntryForm = Dynamics.Forms.RmSalesEntry;
        statisches RmSalesEntryForm.RmSalesEntryWindow RmSalesEntryWindow = RmSalesEntryForm.RmSalesEntry;
        
        /* verursachen einen Hinweis auf dem Außenstand-Verhandlung-Eintragungs-Verteilungsschirm *
        statisches RmSalesDistributionForm RmSalesDistributionForm = Dynamics.Forms.RmSalesDistribution;
        statisches RmSalesDistributionForm.RmSalesDistributionWindow RmSalesDistributionWindow = RmSalesDistributionForm.RmSalesDistribution;

        /* definieren eine Schnurvariable, um Anschlussschnur zu halten *
        Schnur ConnectionString;
                       
        /* Einstellung SQL-Verbindungsverwalter *
        privates System.Data.SqlClient.SqlConnection DataConnection;
        privates System.Data.DataSet DataDataSet;
        privates System.Data.SqlClient.SqlCommand DataCommand;
        privates System.Data.SqlClient.SqlDataAdapter DataDataAdapter;
        privates System.Data.DataSet TrxTypeDataSet;
        privates System.Data.SqlClient.SqlCommand TrxTypeDataCommand;
        privates System.Data.SqlClient.SqlDataAdapter TrxTypeDataAdapter;
        privates SqlCommandBuilder _commandBuilder;

        /* definieren Variablen, um Bearbeitungsnummer und Reihenquelle zu halten *
        Schnur DocumentNumber;
        Schnur MasterType;
        Schnur DistSource;
        Schnur DocSource;
        
        allgemeines frmViewJobLinker ()
        {
            InitializeComponent ();
                        
            txtCustomerID.Text = RmSalesEntryWindow.CustomerNumber;
            txtCustomerName.Text = RmSalesEntryWindow.CustomerName;
            txtDocumentNumber.Text = RmSalesEntryWindow.RmDocumentNumberWork;
            DocumentNumber = RmSalesEntryWindow.RmDocumentNumberWork;
            
            Schalter (RmSalesEntryWindow.DocumentType.Value.ToString ())
            {
                Fall „1“:
                    txtDocumentType.Text = „Verkäufe/Rechnungen“;
                    Bruch;
                Fall „2“:
                    txtDocumentType.Text = „Belastungsanzeigen“;
                    Bruch;
                Fall „3“:
                    txtDocumentType.Text = „Finanzierung auflädt“;
                    Bruch;
                Fall „4“:
                    txtDocumentType.Text = „Service/Reparaturen“;
                    Bruch;
                Fall „5“:
                    txtDocumentType.Text = „Garantie“;
                    Bruch;
                Fall „6“:
                    txtDocumentType.Text = „Gutschriftsanzeige“;
                    Bruch;
                Fall „7“:
                    txtDocumentType.Text = „zurückgeht“ geht;
                    Bruch;
                Rückstellung:
                    txtDocumentType.Text = „Unbekanntes“;
                    Bruch;
            }


            txtDocumentAmount.Text = RmSalesEntryWindow.DocumentAmount.Value.ToString („c“);
            DocumentNumber = RmSalesEntryWindow.RmDocumentNumberWork;

            txtBatchName.Text = RmSalesEntryWindow.BatchNumber;
            /* Bekehrter das Aufgabedatum *
            txtPostingDate.Text = RmSalesEntryWindow.GlPostingDate.Value.ToString ();
            Versuch
            {

                wenn (txtPostingDate.Text! = "")
                {
                    txtPostingDate.Text = Convert.ToDateTime (txtPostingDate.Text) .ToString („MM/dd/yyyy“);
                }
            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show („STÖRUNG:: “ + ex. Mitteilung);
                dieses. Abschluss ();

            }
            /* Bekehrter das Dokumentendatum *
            txtDocumentDate.Text = RmSalesEntryWindow.DocumentDate.Value.ToString ();
            Versuch
            {
                wenn (txtDocumentDate.Text.ToString ()! = "")
                {
                    txtDocumentDate.Text = Convert.ToDateTime (txtDocumentDate.Text) .ToString („MM/dd/yyyy“);
                }
            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show („STÖRUNG:: “ + ex. Mitteilung);
                dieses. Abschluss ();

            }


            MasterType = „CUS“;
            DistSource = „Außenstand-Verhandlung-Eintragung“;
            DocSource = „Außenstände“;

            /* bevölkern die Job-Verknüpfungsprogrammtabelle, die auf dieser Exemplarnummer basiert *
            Versuch
            {
                SqlConnection Betrug = GetConnection ();
                SqlCommand cmd = neues SqlCommand ();

                cmd.CommandType = CommandType.StoredProcedure;

                cmd. Parameters.Add (neues SqlParameter („@DCMTNMBR“, DocumentNumber));
                cmd. Parameters.Add (neues SqlParameter („@MASTERTYPE“, MasterType));
                cmd. Parameters.Add (neues SqlParameter („@DISTSOURCE“, DistSource));
                cmd. Parameters.Add (neues SqlParameter („@DOCSOURCE“, DocSource));

                cmd.CommandText = „rbsUpdateJobLinkerRTE“;

                cmd. Anschluss = Betrug;

                cmd.ExecuteNonQuery ();

                Betrug. Abschluss ();

            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show („STÖRUNG:: “ + ex. Mitteilung);
                dieses. Abschluss ();

            }

            /* Anzeige, welche die GL Verteilungen vom Job-Verknüpfungsprogramm pro Exemplarnummer verlegen *
            Versuch
            {
                SqlConnection DataConnection = GetConnection ();

                /* definieren Datensatz für Verhandlung-Arten *
                TrxTypeDataSet = neues System.Data.DataSet ();
                TrxTypeDataSet.CaseSensitive = falsch;

                TrxTypeDataCommand = neues System.Data.SqlClient.SqlCommand ();
                TrxTypeDataCommand.Connection = DataConnection;

                TrxTypeDataCommand.CommandText = „auserwähltes LTRIM (DISTTRXTYPE) ALS DISTTRXTYPE von JOB_TRX_TYPES wo AUFTRAG der formtype='SALES DURCH DISTTRXTYPE“;

                TrxTypeDataAdapter = neues System.Data.SqlClient.SqlDataAdapter ();
                TrxTypeDataAdapter.SelectCommand = TrxTypeDataCommand;

                TrxTypeDataAdapter.Fill (TrxTypeDataSet);

                /* definieren Datensatz für GL Verteilungsmengen *
                DataDataSet = neues System.Data.DataSet ();
                DataDataSet.CaseSensitive = falsch;

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

                DataCommand.CommandText = „auserwähltes JOBNUMBER, ACTNUMST, DEBITAMT, CRDTAMNT, DISTTYPE, DISTTRXTYPE, DISTREF, BCHSOURC, TRANSNMBR, TRXTYPE, DSTSQNUM, CNTRLTYP, APTVCHNM, SPCLDIST“ +
                „von JOB_LINKER WO TRANSNMBR = '“ + DocumentNumber + „'Auftrag durch DSTSQNUM“;

                DataDataAdapter = neues System.Data.SqlClient.SqlDataAdapter ();
                DataDataAdapter.SelectCommand = DataCommand;
                _commandBuilder = neues SqlCommandBuilder (DataDataAdapter);

                DataDataAdapter.Fill (DataDataSet);

                dgvViewJobLinker.DataError += neues DataGridViewDataErrorEventHandler (dgvJobLinker_DataError);

                dgvViewJobLinker.RowHeadersVisible = falsch;
                dgvViewJobLinker.DataSource = DataDataSet.Tables [0] .DefaultView;
                dgvViewJobLinker.AutoGenerateColumns = ausrichten en;
                dgvViewJobLinker.DefaultCellStyle.NullValue = '';
                dgvViewJobLinker.AllowUserToAddRows = falsch;

                DataGridViewButtonColumn colButton = neues DataGridViewButtonColumn ();
                colButton.HeaderText = "";
                colButton.Name = „btnLookupJob“;
                colButton.Text = „Nachschlagen-Job“;
                colButton.UseColumnTextForButtonValue = ausrichten en;

                dgvViewJobLinker.Columns.Insert (0, colButton);
                dgvViewJobLinker.Columns [0]. Breite = 80;
               
                dgvViewJobLinker.Columns [1]. Breite = 100;
                dgvViewJobLinker.Columns [1] .ReadOnly = falsch;
                dgvViewJobLinker.Columns [1] .HeaderText = „Jobnummer“;

                dgvViewJobLinker.Columns [2]. Breite = 100;
                dgvViewJobLinker.Columns [2] .ReadOnly = ausrichten en;
                dgvViewJobLinker.Columns [2] .HeaderText = „GL Konto“;

                dgvViewJobLinker.Columns [3]. Breite = 84;
                dgvViewJobLinker.Columns [3] .ReadOnly = ausrichten en;
                dgvViewJobLinker.Columns [3] .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvViewJobLinker.Columns [3] .DefaultCellStyle.Format = „c“;
                dgvViewJobLinker.Columns [3] .HeaderText = „Schuldposten-Menge“;

                dgvViewJobLinker.Columns [4]. Breite = 84;
                dgvViewJobLinker.Columns [4] .ReadOnly = ausrichten en;
                dgvViewJobLinker.Columns [4] .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvViewJobLinker.Columns [4] .DefaultCellStyle.Format = „c“;
                dgvViewJobLinker.Columns [4] .HeaderText = „Gutschrift-Menge“;

                dgvViewJobLinker.Columns [5]. Breite = 100;
                dgvViewJobLinker.Columns [5] .ReadOnly = ausrichten en;
                dgvViewJobLinker.Columns [5] .HeaderText = „Dist Art“;

                /* hinzufügen eine neue Spalte (ComboBox) für die Verhandlung-Art Spalte) *
                DataGridViewComboBoxColumn colType = neues DataGridViewComboBoxColumn ();

                colType.DefaultCellStyle.NullValue = „„;
                colType.DataSource = TrxTypeDataSet.Tables [0];
                colType.ValueMember = DataDataSet.Tables [0]. Spalten [5] .ColumnName.ToString ();
                colType.DisplayMember = colType.ValueMember;
                colType.HeaderText = „Verhandlung-Art“;
                colType.DropDownWidth = 90;
                colType.Width = 90;
                colType.MaxDropDownItems = 7;
                colType.DataPropertyName = DataDataSet.Tables [0]. Spalten [5] .ColumnName.ToString ();
                colType.Name = DataDataSet.Tables [0]. Spalten [5] .ColumnName.ToString ();
                dgvViewJobLinker.Columns.RemoveAt (6);
                dgvViewJobLinker.Columns.Insert (6, colType);

                dgvViewJobLinker.Columns [7]. Breite = 292;
                dgvViewJobLinker.Columns [7] .ReadOnly = falsch;
                dgvViewJobLinker.Columns [7] .HeaderText = „Dist Hinweis“;

                dgvViewJobLinker.Columns [8]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [9]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [10]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [11]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [12]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [13]. Sichtbar = falsch;
                dgvViewJobLinker.Columns [14]. Sichtbar = falsch;

                dgvViewJobLinker.EditMode = DataGridViewEditMode.EditOnEnter;
                dgvViewJobLinker.Focus ();

            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show („Störung: “ + ex. Mitteilung);
            }

        }

        privates leeres btnExit_Click (Gegenstandabsender, EventArgs e)
        {
            dieses. Fell ();
            DataConnection.Close ();
            
        }

        privates SqlConnection GetConnection ()
        {
            /* herstellen den Leser und geöffnete Akte er, die Anschlussschnur enthalten *
            TextReader tr = neues StreamReader (@ " C:\Program Files\Microsoft-Dynamik \ GP \ Addins \ GSE.INI ");

            /* las die Linie, welche die Anschlussschnur enthält *
            ConnectionString = tr.ReadLine ();

            /* schließen den Strom *
            tr. Abschluss ();

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

            RückholDataConnection;
        }

        privates leeres btnSave_Click (Gegenstandabsender, EventArgs e)
        {
            Versuch
            {
                //DataCommandBuilder = neues SqlCommandBuilder (DataDataAdapter);
                //DataDataAdapter.DeleteCommand = DataCommandBuilder.GetDeleteCommand ();
                //DataDataAdapter.InsertCommand = DataCommandBuilder.GetInsertCommand ();
                //DataDataAdapter.UpdateCommand = DataCommandBuilder.GetUpdateCommand ();
                _commandBuilder.GetUpdateCommand ();

                DataDataAdapter.Update (DataDataSet);
            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show (ex. Mitteilung);
            }
            dieses. Fell ();
            DataConnection.Close ();
            
        }

        privates leeres dgvJobLinker_DataError (Gegenstandabsender, DataGridViewDataErrorEventArgs anError)
        {
            
        }

        privates leeres dgvViewJobLinker_CellContentClick (Gegenstandabsender, DataGridViewCellEventArgs e)
        {
            wenn (e.ColumnIndex == 0 && e.RowIndex >= 0)
            {

                    Anwendung (frmLookupJob ViewAgenciesByJobsForm = neues frmLookupJob ())
                    {
                        wenn (ViewAgenciesByJobsForm.ShowDialog (dieses) == DialogResult.OK)
                            dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Wert = ViewAgenciesByJobsForm.CellValue;
                    }  
            }
        }
        }
    }
==============================================================
NACHSCHLAGEN-FENSTER
==============================================================
using System;
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
{
    allgemeines teilweises Kategorie frmLookupJob: DexUIForm
    {
        
        /* definieren eine Schnurvariable, um die Anschlussschnur zu halten *
        Schnur ConnectionString;

        /* definieren die Variablen, die in der Suche nach einer Zeichenfolge verwendet *
        Schnur strSearch = "";
        int I;

        /* Einstellung SQL-Verbindungsverwalter *
        privates System.Data.SqlClient.SqlConnection DataConnection;
        privates System.Data.DataSet DataDataSet;
        privates System.Data.SqlClient.SqlCommand DataCommand;
        privates System.Data.SqlClient.SqlDataAdapter DataDataAdapter;
        allgemeine Schnur CellValue {erhalten; Satz; }
      
        allgemeines frmLookupJob ()
        {
            InitializeComponent ();
                                  
            Versuch
            {
                SqlConnection DataConnection = GetConnection ();

                DataDataSet = neues System.Data.DataSet ();
                DataDataSet.CaseSensitive = falsch;

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

                DataCommand.CommandText = „AUSERWÄHLTES JOBNUMBER, AGENTUR vom JOB-AUFTRAG DURCH JOBNUMBER“;

                DataDataAdapter = neues System.Data.SqlClient.SqlDataAdapter ();
                DataDataAdapter.SelectCommand = DataCommand;
                DataDataAdapter.TableMappings.Add („Tabelle“, „AgenciesByJobs“);
                DataDataAdapter.Fill (DataDataSet);

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

                dgvAgenciesByJobs.DataSource = DataDataSet.Tables [„AgenciesByJobs“] .DefaultView;
                dgvAgenciesByJobs.Columns [0]. Breite = 85;
                dgvAgenciesByJobs.Columns [0] .HeaderText = „Jobnummer“;
                dgvAgenciesByJobs.Columns [0] .ReadOnly = ausrichten en;
                dgvAgenciesByJobs.Columns [1]. Breite = 95;
                dgvAgenciesByJobs.Columns [1] .HeaderText = „Agentur-Code“;
                dgvAgenciesByJobs.Columns [1] .ReadOnly = ausrichten en;

            }
            Fang (Ausnahme ex)
            {
                MessageBox.Show (ex. Mitteilung);
            }
                   
        }
        
        privates leeres btnExit_Click (Gegenstandabsender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            DataConnection.Close ();
            dieses. Abschluss ();
            Rückkehr;
        }

        privates SqlConnection GetConnection ()
        {
            /* herstellen den Leser und geöffnete Akte er, die Anschlussschnur enthalten *
            TextReader tr = neues StreamReader (@ " C:\Program Files\Microsoft-Dynamik \ GP \ Addins \ GSE2000.INI ");

            /* las die Linie, welche die Anschlussschnur enthält *
            ConnectionString = tr.ReadLine ();

            /* schließen den Strom *
            tr. Abschluss ();

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

            RückholDataConnection;
        }

        privates leeres dgvAgenciesByJobs_DoubleClick (Gegenstandabsender, EventArgs e)
        {
            int CurrentRow;

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

            DataConnection.Close ();
            dieses. Abschluss ();
            Rückkehr;

        }

        private leere dgvAgenciesByJobs_KeyPress (Gegenstandabsender, KeyPressEventArgs e)
        {
            strSearch += e.KeyChar;

            wenn (e.KeyChar == (Putzfrau) Keys.Back)
            {
                wenn (strSearch.Length > 0) strSearch = strSearch.Substring (0, strSearch.Length - 2);
            }

            für (i = 0; I <= dgvAgenciesByJobs.RowCount - 1; i++)
            {
                wenn (dgvAgenciesByJobs [0, i]. Wert! = ungültige && dgvAgenciesByJobs [0, i]. Value.ToString () .StartsWith (strSearch.ToUpper ()))
                {
                    dgvAgenciesByJobs.Rows [i]. Vorgewählt = ausrichten;
                    dgvAgenciesByJobs.CurrentCell = dgvAgenciesByJobs [0, i];
                    wenn (dgvAgenciesByJobs.Rows [i]. Angezeigtes == falsch)
                    {
                        dgvAgenciesByJobs.FirstDisplayedScrollingRowIndex = i;
                    }
                    Rückkehr;
                }
            }        
        }
    }
    
}

Antwort : GEGEN C# 2008 Nicht-Modal bilden, sich zu benehmen, wie modal

(im Mitgliedstaat-Zugang VBA) um den Fokus auf irgendwelche einzustellen Form öffnen, die Syntax ist:

   Formen! YourFormName.SetFocus

Hoffen, dass dieses außerdem hilft.

; -)

JeffCoachman
Weitere Lösungen  
 
programming4us programming4us