Vraag : VERSUS 2008 C# tweemaal in brand steekt DataGridViewButtonColumn

Ik voegde een raadplegingsknoop aan mijn datagridview toe door een datagridviewButtonCoulumn. toe te voegen ik de raadplegingsknoop klik. het raadplegingsscherm verschijnt, brengt de tweemaal klikkengebeurtenis de waarderug, is het raadplegingsscherm verondersteld om weg te gaan maar het probleem dat ik is heb gehad dat het raadplegingsvenster in brand steekt en opnieuw het scherm sluit. Wat maakt opnieuw de brand van het raadplegingsscherm?
" codeBody "
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 PopulateJobLinkerRTE
{
    openbare gedeeltelijke klasse frmViewJobLinker: DexUIForm
    {

        /* houd een verwijzing naar de Agentschappen van de Mening door de Vorm WinForm van Banen */
        statische frmLookupJob ViewAgenciesByJobsForm;

        /* cre�ër een verwijzing naar het scherm van de Ingang van de Transactie van de Te innen som */
        statische RmSalesEntryForm RmSalesEntryForm = Dynamics.Forms.RmSalesEntry;
        statische RmSalesEntryForm.RmSalesEntryWindow RmSalesEntryWindow = RmSalesEntryForm.RmSalesEntry;
        
        /* cre�ër een verwijzing naar het scherm van de Distributie van de Ingang van de Transactie van de Te innen som */
        statische RmSalesDistributionForm RmSalesDistributionForm = Dynamics.Forms.RmSalesDistribution;
        statische RmSalesDistributionForm.RmSalesDistributionWindow RmSalesDistributionWindow = RmSalesDistributionForm.RmSalesDistribution;

        /* bepaal een koordvariabele om verbindingskoord te houden */
        koord ConnectionString;
                       
        /* SQL van de opstelling de Managers van de Verbinding */
        privé System.Data.SqlClient.SqlConnection DataConnection;
        privé System.Data.DataSet DataDataSet;
        privé System.Data.SqlClient.SqlCommand DataCommand;
        privé System.Data.SqlClient.SqlDataAdapter DataDataAdapter;
        privé System.Data.DataSet TrxTypeDataSet;
        privé System.Data.SqlClient.SqlCommand TrxTypeDataCommand;
        privé System.Data.SqlClient.SqlDataAdapter TrxTypeDataAdapter;
        privé SqlCommandBuilder _commandBuilder;

        /* bepaal variabelen om partijaantal en partijbron te houden */
        koord DocumentNumber;
        koord MasterType;
        koord DistSource;
        koord DocSource;
        
        openbare frmViewJobLinker ()
        {
            InitializeComponent ();
                        
            txtCustomerID.Text = RmSalesEntryWindow.CustomerNumber;
            txtCustomerName.Text = RmSalesEntryWindow.CustomerName;
            txtDocumentNumber.Text = RmSalesEntryWindow.RmDocumentNumberWork;
            DocumentNumber = RmSalesEntryWindow.RmDocumentNumberWork;
            
            schakelaar (RmSalesEntryWindow.DocumentType.Value.ToString ())
            {
                geval „1“:
                    txtDocumentType.Text = „Verkoop/Rekeningen“;
                    onderbreking;
                geval „2“:
                    txtDocumentType.Text = de „Memoranda van het Debet“;
                    onderbreking;
                geval „3“:
                    txtDocumentType.Text = „financier Lasten“;
                    onderbreking;
                geval „4“:
                    txtDocumentType.Text = de „Dienst/Reparaties“;
                    onderbreking;
                geval „5“:
                    txtDocumentType.Text = „Garantie“;
                    onderbreking;
                geval „6“:
                    txtDocumentType.Text = het „Memorandum van het Krediet“;
                    onderbreking;
                geval „7“:
                    txtDocumentType.Text = „Winst“;
                    onderbreking;
                gebrek:
                    txtDocumentType.Text = „Onbekend“;
                    onderbreking;
            }


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

            txtBatchName.Text = RmSalesEntryWindow.BatchNumber;
            /* zet de het posten datum om */
            txtPostingDate.Text = RmSalesEntryWindow.GlPostingDate.Value.ToString ();
            probeer
            {

                als (txtPostingDate.Text! = "")
                {
                    txtPostingDate.Text = Convert.ToDateTime (txtPostingDate.Text) .ToString („MM/dd/yyyy“);
                }
            }
            vangst (ex Uitzondering)
            {
                MessageBox.Show („FOUT:: “ + ex. Bericht);
                dit. Sluit ();

            }
            /* zet de documentdatum om */
            txtDocumentDate.Text = RmSalesEntryWindow.DocumentDate.Value.ToString ();
            probeer
            {
                als (txtDocumentDate.Text.ToString ()! = "")
                {
                    txtDocumentDate.Text = Convert.ToDateTime (txtDocumentDate.Text) .ToString („MM/dd/yyyy“);
                }
            }
            vangst (ex Uitzondering)
            {
                MessageBox.Show („FOUT:: “ + ex. Bericht);
                dit. Sluit ();

            }


            MasterType = „CUS“;
            DistSource = „de Ingang van de Transactie van de Te innen som“;
            DocSource = „Te innen som“;

            /* bevolk de Linker van de Baan lijst op dit Documentnummer wordt gebaseerd dat */
            probeer
            {
                SqlConnection bedriegt = GetConnection ();
                SqlCommand cmd = nieuwe SqlCommand ();

                cmd.CommandType = CommandType.StoredProcedure;

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

                cmd.CommandText = „rbsUpdateJobLinkerRTE“;

                cmd. De verbinding = bedriegt;

                cmd.ExecuteNonQuery ();

                bedrieg. Sluit ();

            }
            vangst (ex Uitzondering)
            {
                MessageBox.Show („FOUT:: “ + ex. Bericht);
                dit. Sluit ();

            }

            /* toon de Distributies GL van de Linker van de Baan lijst per Documentnummer */
            probeer
            {
                SqlConnection DataConnection = GetConnection ();

                /* bepaal dataset voor de Types van Transactie */
                TrxTypeDataSet = nieuwe System.Data.DataSet ();
                TrxTypeDataSet.CaseSensitive = vals;

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

                TrxTypeDataCommand.CommandText = „uitgezochte LTRIM (DISTTRXTYPE) ALS DISTTRXTYPE van JOB_TRX_TYPES waar formtype='SALES DOOR DISTTRXTYPE“ OPDRACHT GEEF tot;

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

                TrxTypeDataAdapter.Fill (TrxTypeDataSet);

                /* bepaal dataset voor GL distributiebedragen */
                DataDataSet = nieuwe System.Data.DataSet ();
                DataDataSet.CaseSensitive = vals;

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

                DataCommand.CommandText = „UITGEZOCHTE JOBNUMBER, ACTNUMST, DEBITAMT, CRDTAMNT, DISTTYPE, DISTTRXTYPE, DISTREF, BCHSOURC, TRANSNMBR, TRXTYPE, DSTSQNUM, CNTRLTYP, APTVCHNM, SPCLDIST“ +
                „van JOB_LINKER WAAR TRANSNMBR = '“ + DocumentNumber + „'door DSTSQNUM“ opdracht geeft tot;

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

                DataDataAdapter.Fill (DataDataSet);

                dgvViewJobLinker.DataError += nieuwe DataGridViewDataErrorEventHandler (dgvJobLinker_DataError);

                dgvViewJobLinker.RowHeadersVisible = vals;
                dgvViewJobLinker.DataSource = DataDataSet.Tables [0] .DefaultView;
                dgvViewJobLinker.AutoGenerateColumns = waar;
                dgvViewJobLinker.DefaultCellStyle.NullValue = '';
                dgvViewJobLinker.AllowUserToAddRows = vals;

                DataGridViewButtonColumn colButton = nieuwe DataGridViewButtonColumn ();
                colButton.HeaderText = "";
                colButton.Name = „btnLookupJob“;
                colButton.Text = de „Baan van de Raadpleging“;
                colButton.UseColumnTextForButtonValue = waar;

                dgvViewJobLinker.Columns.Insert (0, colButton);
                dgvViewJobLinker.CellContentClick += nieuwe DataGridViewCellEventHandler (dgvViewJobLinker_CellContentClick);

                dgvViewJobLinker.Columns [0]. Breedte = 80;
               
                dgvViewJobLinker.Columns [1]. Breedte = 100;
                dgvViewJobLinker.Columns [1] .ReadOnly = vals;
                dgvViewJobLinker.Columns [1] .HeaderText = „Jobnummer“;

                dgvViewJobLinker.Columns [2]. Breedte = 100;
                dgvViewJobLinker.Columns [2] .ReadOnly = waar;
                dgvViewJobLinker.Columns [2] .HeaderText = „Gl- Rekening“;

                dgvViewJobLinker.Columns [3]. Breedte = 84;
                dgvViewJobLinker.Columns [3] .ReadOnly = waar;
                dgvViewJobLinker.Columns [3] .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvViewJobLinker.Columns [3] .DefaultCellStyle.Format = „c“;
                dgvViewJobLinker.Columns [3] .HeaderText = het „Bedrag van het Debet“;

                dgvViewJobLinker.Columns [4]. Breedte = 84;
                dgvViewJobLinker.Columns [4] .ReadOnly = waar;
                dgvViewJobLinker.Columns [4] .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
                dgvViewJobLinker.Columns [4] .DefaultCellStyle.Format = „c“;
                dgvViewJobLinker.Columns [4] .HeaderText = het „Bedrag van het Krediet“;

                dgvViewJobLinker.Columns [5]. Breedte = 100;
                dgvViewJobLinker.Columns [5] .ReadOnly = waar;
                dgvViewJobLinker.Columns [5] .HeaderText = „Type Dist“;

                /* voeg een nieuwe Kolom (ComboBox) voor de kolom van het Type van Transactie */toe
                DataGridViewComboBoxColumn colType = nieuwe DataGridViewComboBoxColumn ();

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

                dgvViewJobLinker.Columns [7]. Breedte = 292;
                dgvViewJobLinker.Columns [7] .ReadOnly = vals;
                dgvViewJobLinker.Columns [7] .HeaderText = „Verwijzing Dist“;

                dgvViewJobLinker.Columns [8]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [9]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [10]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [11]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [12]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [13]. Zichtbaar = vals;
                dgvViewJobLinker.Columns [14]. Zichtbaar = vals;

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

            }
            vangst (ex Uitzondering)
            {
                MessageBox.Show („Fout: “ + ex. Bericht);
            }

        }

        privé nietige btnExit_Click (objecten afzender, EventArgs e)
        {
            dit. Huid ();
            dit. Schik ();
        }

        privé SqlConnection GetConnection ()
        {
            /* cre�ër lezer en open dossier die verbindingskoord bevatten */
            TextReader RT = nieuwe StreamReader (@ " C:\Program Files\Microsoft Dynamica \ GP \ Addins \ GSE.INI ");

            /* lees lijn die het verbindingskoord bevatten */
            ConnectionString = tr.ReadLine ();

            /* sluit de stroom */
            RT. Sluit ();

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

            terugkeer DataConnection;
        }

        de privé leegte dgvViewJobLinker_SelectionChanged (objecten afzender, EventArgs e)
        {

        }



        privé nietige btnSave_Click (objecten afzender, EventArgs e)
        {
            probeer
            {
                //DataCommandBuilder = nieuwe SqlCommandBuilder (DataDataAdapter);
                //DataDataAdapter.DeleteCommand = DataCommandBuilder.GetDeleteCommand ();
                //DataDataAdapter.InsertCommand = DataCommandBuilder.GetInsertCommand ();
                //DataDataAdapter.UpdateCommand = DataCommandBuilder.GetUpdateCommand ();
                _commandBuilder.GetUpdateCommand ();

                DataDataAdapter.Update (DataDataSet);
            }
            vangst (ex Uitzondering)
            {
                Ex MessageBox.Show (. Bericht);
            }
            dit. Huid ();
            dit. Schik ();
        }

        privé nietige label1_Click (objecten afzender, EventArgs e)
        {

        }

        privé nietige dgvJobLinker_DataError (objecten afzender, anError DataGridViewDataErrorEventArgs)
        {
            
        }

        privé nietige dgvViewJobLinker_CellClick (objecten afzender, DataGridViewCellEventArgs e)
        {
            
        }

        privé nietige dgvViewJobLinker_CellContentClick (objecten afzender, DataGridViewCellEventArgs e)
        {
            als (e.ColumnIndex == 0 && e.RowIndex > 0)
            {

                als (ongeldige ViewAgenciesByJobsForm ==)
                {
                    ViewAgenciesByJobsForm = nieuwe frmLookupJob ();
                }
                anders
                {
                    als (valse ViewAgenciesByJobsForm.Created ==)
                    {
                        ViewAgenciesByJobsForm = nieuwe frmLookupJob ();
                    }
                }

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

            }
        }
        }
    }

Antwoord : VERSUS 2008 C# tweemaal in brand steekt DataGridViewButtonColumn

Hallo,
  het is beste praktijken te gebruiken „gebruikend“ om de modale vormen tot stand te brengen te tonen en te vernietigen. u zou of moeten controleren de gebruiker iets wordt veranderd en geklikt knoop (die een knoop DialogResult = DialogResult.OK plaatst) .if goedkeur die hij „annuleert“ knoop (die een knoop DialogResult = DialogResult.Cancel) heeft geklikt plaatst, zou u de geen waarde van de updatecel moeten doen. steekproef hebben vastgemaakt.

ViewAgenciesByJobsForm.ShowDialog (dit)

reeksen huidige vorm als oudervorm.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
als (e.ColumnIndex == 0 && e.RowIndex > 0)
{
  het gebruiken  (frmLookupJob ViewAgenciesByJobsForm =
                       ViewAgenciesByJobsForm = nieuwe frmLookupJob ())
  {
     als (ViewAgenciesByJobsForm.ShowDialog (dit) == DialogResult.OK))
         dgvViewJobLinker [1, dgvViewJobLinker.CurrentCell.RowIndex]. Waarde                   = ViewAgenciesByJobsForm.CellValue;

   }
}


in frmLookupJob, zal het iets als:

(1) btnOk klikt gebeurtenis:
    CellValue = „mijn nieuwe Waarde“
    DialogResult   =DialogResut.OK;

(2) btnCancel klikt gebeurtenis:
    DialogResult   =DialogResut.Cancel;
Andere oplossingen  
 
programming4us programming4us