我有一個DataGridView
,我是有選擇地(反覆)從隱藏行,使用row.Visible
:的DataGridView沒有粉刷
void UpdateMessageWindow()
{
MessageDataGridView.CurrentCell = null;
foreach (DataGridViewRow row in MessageDataGridView.Rows)
{
row.Visible = DisplayedLevels.HasFlag((MessageLevel)row.Cells[3].Value);
}
}
我有一個問題,即添加行後,他們」直到你單擊單元格(重新繪製單擊的單元格),按下某個鍵或隱藏窗口之後纔會重新繪製。如果將鼠標移到DGV上,隨着光標的變化,您可以看到它們存在。
我敢肯定,我已經嘗試了DataGridView的相關探測方法的每個組合,但沒有任何幫助。
編輯: 我已經修改了它使用BindingSource.Filter,加入了「可見」列到DataSet表,設置messageBindingSource.Filter = "Visible"
,並改寫UpdateOutput到
void UpdateOutputWindow()
{
foreach (JobDataSet.MessagesRow row in _dataSet.Messages)
{
row.Visible = DisplayedLevels.HasFlag(row.Level);
}
}
,但它仍然顯示同樣的行爲。
你不能應用行過濾器嗎?而不是迭代每一行?或者可能過濾數據源? – Derek 2013-02-27 16:05:23
數據源是一個DataSet,它不支持過濾,'BindingSource.Filter'等不支持按位運算符。 – RoadieRich 2013-02-27 16:12:05
你不能使用DataView和DataSets? – Derek 2013-02-27 16:30:36