-3

dgv_configCH是一個winform的DataGridView)。正如你在下面的圖片中看到的那樣,VS執行器位於if的括號內,並且有一個假的條件。實際上,VS執行程序在檢查條件之後不會進入,而是在離開功能之前進入。在這個程序中,我的目的只是能夠使用DataGridViewCheckBoxCell,因爲dgv_configCH[e.ColumnIndex, e.RowIndex].Value.ToString()總是在dgv_configCH_CellValueChanged事件中返回trueC#ByPassing如果(條件)語句沒有填充條件?!神奇的事情發生?

enter image description here

+2

CommitEdit()後可能變成false嗎? –

+1

@IndritKello承諾正是讓細胞再次「乾淨」......所以我會說完全預期的圖像。 – Fildor

+0

我屏幕記錄了發生了什麼事情:https://www.youtube.com/watch?v = HIevvCGDV48有關更多說明,我按F11的速度太快,但它的功能是:在離開功能之前,在結束括號之後,它返回行dgv_configCH.CommitEdit ... – MHamdaoui

回答

0

那麼它是真實的,當編譯器打線 - 肯定;) 請改爲

VAR isDirty = this.dgv_configCH.IsCurrentCellDirty; if(isDirty)

你會看到,你用commitedit()改變了狀態,所以你不能在你停止的行中看到正確的if條件。

+0

我屏幕記錄發生了什麼:https://www.youtube.com/watch?v=HIevvCGDV48 – MHamdaoui

+0

它看起來像我你喜歡你的方法兩次 - 第一次它退出isDirty錯誤和第二它着陸的條件 - 對嗎? 如果是這樣,它是相同的線程?如果沒有,您可以嘗試同步方法中的呼叫。 –