目前我有以下内容:
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的行中没有数据,我需要它才能发出声音。
答案 0 :(得分:5)
根据评论,你有:
dataGridView1.DataSource = BS;
其中BS为BindingSource
,因此您可以使用其BindingSource.Count属性。
所以代码中的某个地方:
var bindingSource = dataGridView1.DataSource as BindingSource;
if(bindingSource.Count == 0) {
MessageBox.Show("EMPTY");
}
答案 1 :(得分: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();
}
}
答案 2 :(得分: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