Joã*_*lva 5 c# sorting datagridview
我正在用C#创建一个接收sms并显示给用户的程序,我遇到了这类数据的问题.
例如,如果用户按ids对表进行排序,从较高的id到较低的id,那么当新的sms到达时它会到达表的顶部,新的短信无论如何都会到达表的底部.
这是一个截图

正如您所看到的,id 125在0之下,而不是在表的顶部...
我应该使用任何代码或事件吗?
我想在那里开始那个活动:
public void readSms()
{
try
{
comm = AppData.getInstance().getComm();
DecodedShortMessage[] messages = comm.ReadMessages(PhoneMessageStatus.All, "SM");
foreach (DecodedShortMessage message in messages)
{
if (AppData.getInstance().mensagens.Count != 0)
{
Message msg = new Message(
AppData.getInstance().messages.Last.Value.getId() + 1,
((SmsDeliverPdu)(message.Data)).OriginatingAddress,
message.Data.UserDataText,
((SmsDeliverPdu)(message.Data)).SCTimestamp.ToDateTime(),
false);
AppData.getInstance().setMensagem(msg);
}
else
{
Message msg = new Message(
0,
((SmsDeliverPdu(message.Data)).OriginatingAddress,
message.Data.UserDataText,
((SmsDeliverPdu)(message.Data)).SCTimestamp.ToDateTime(),
false);
AppData.getInstance().setMensagem(msg);
}
}
// I need to put the event of sorting here in case any message was been added
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
再次感谢Edper的帮助!
有时我在程序中添加消息:
public void preencherTabela(int lastIndex)
{
LinkedList<Message> messages = AppData.getInstance().getMessagessList();
{
addTable(
messages.ElementAt(i).getId(),
messages.ElementAt(i).getChecked(),
messages.ElementAt(i).getMsg(),
messages.ElementAt(i).getNum(),
messages.ElementAt(i).getDate());
}
}
Run Code Online (Sandbox Code Playgroud)
和AddTable方法:
private void addTable(int p, bool p_2, string p_3, string p_4, DateTime dateTime)
{
this.dataGridView1.Invoke(
new MethodInvoker(() =>
{
this.dataGridView1.Rows.Add(p, p_2, p_3, p_4, dateTime);
}));
}
Run Code Online (Sandbox Code Playgroud)
如果您现在也想要它,这是一个用于在屏幕上显示消息的程序,例如,在迪斯科舞厅中,用户将消息从移动设备发送到由模型连接到PC的号码,消息将显示它,实际上我在朋友迪斯科测试它.
再次感谢您的帮助!
编辑:为谁可以帮助我修复桌面添加了50点声望的赏金.
终于成功了!这就是我所做的:
DataGridViewColumn column = dataGridView1.SortedColumn;
ListSortDirection order;
if (dataGridView1.SortOrder.Equals(SortOrder.Ascending))
{
order = ListSortDirection.Ascending;
}
else
{
order = ListSortDirection.Descending;
}
dataGridView1.Sort(column, order);
Run Code Online (Sandbox Code Playgroud)
因此,我得到了排序后的列,然后检查了 datagridview 的排序顺序,然后我再次对使用相同顺序排序的列进行排序...请注意,这段代码是新鲜的,所以它不是“防弹”我不检查列的值和顺序是否为空!如果您需要此代码并使用它,请记住这一点!这几乎就像 Jayesh 的回答一样。谢谢大家的帮助!
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |