【发布时间】:2014-11-07 06:42:16
【问题描述】:
我开发了一种异步套接字方法,以便从其他应用程序接收文本并将其显示在 Excel 工作表中。 当 AsyncCallback 方法接收到信息时,它会尝试在 Excel 工作表中写入此消息。
一切正常,但如果在执行该方法的同时我正在编辑另一个单元格,则 ws.get_Range("A1").Value 不起作用。 我可以解决吗?是否有任何其他方法可以强制设置此消息而不是 Excel 的任何其他事件?
private void MessageCallBack(IAsyncResult aResult)
{
try
{
byte[] receivedData = new byte[10];
receivedData = (byte[])aResult.AsyncState;
ASCIIEncoding aEncoding = new ASCIIEncoding();
string receivedMessage = aEncoding.GetString(receivedData);
Worksheet ws = SingletonExcel.getWorksheet();
ws.get_Range("A1").Value = receivedMessage
}
catch (Exception ex)
{
MessageBox.Show("the Cell A1 has not modifed: " + ex.Message);
}
}
【问题讨论】:
-
当您说“我正在编辑其他单元格”时,您的意思是光标在公式编辑栏中吗?如果是,则大多数 Excel 功能都被禁用。您可能会检测到这一点并等待 - 甚至可能退出编辑模式,但我怀疑当 Excel 处于该模式时您将能够做任何事情。