3

目前我有以下内容:

if (dataGridView1.Rows.Count == 0)
{
    MessageBox.Show("EMPTY");
}
else
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav"))
    {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

我的网格视图如下所示:

在此处输入图像描述

但它似乎去了 else 语句并发出声音。如果gridview的行中没有数据,我需要它不发出声音。

4

3 回答 3

5

根据评论,您有:

dataGridView1.DataSource = BS;

其中 BS 是BindingSource,因此您可以使用其BindingSource.Count属性。

所以在代码的某处:

var bindingSource = dataGridView1.DataSource as BindingSource; 
if(bindingSource.Count == 0) {
  MessageBox.Show("EMPTY");
}
于 2013-08-23T07:56:01.447 回答
1

您还可以在填充 gridview 时检查这个 .. 像这样

DataSet studentsList = students.GetAllStudents(); 
bool empty = IsEmpty(studentsList); 
if(empty) { 
MessageBox.Show("EMPTY"); 
} 
else { 
using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav"))
{ 
soundPlayer.Play(); 
} 
}
于 2013-08-23T08:05:44.750 回答
0

您可以使用该功能GetCellCount()来获取细胞计数。它需要一个名为DataGridViewElementStates.Selected

例子:

 if (this.myGridView.GetCellCount(DataGridViewElementStates.Selected) > 0)
        {
            //Do sth
        }
        else
        {
            //Show message
        }

优点是您不需要运行数据库查询来使用上述功能检查条件。更多详细信息:https ://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridview.getcellcount

于 2019-05-14T12:27:11.850 回答