如何使用RtdServer在C#中创建实时Excel自动化加载项?

我的任务是使用RtdServer在C#中编写实时Excel自动化加载项。 我非常依赖Stack Overflow中遇到的知识。 我决定表达我的感谢,写下如何记录所有我学到的东西。 Kenny Kerr的Excel RTD服务器:最小的C#实现文章帮助我入门。 我发现Mike Rosenblum和Govert的评论特别有帮助。

C#中的SetWindowsHookEx

我正试图挂钩第三方应用程序,以便我可以绘制到它的屏幕。 绘制到屏幕很容易,我不需要帮助,但我似乎遇到使用SetWindowsHookEx来处理WH_GETMESSAGE的问题。 我无法弄清楚最后2个参数要传递什么。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowDrawer { public partial class Form1 : Form { private delegate int HookProc(int code, IntPtr wParam, IntPtr lParam); static IntPtr hHook; IntPtr windowHandle; uint processHandle; HookProc PaintHookProcedure; [System.Runtime.InteropServices.DllImport(“user32.dll”, EntryPoint = “FindWindow”, SetLastError = true)] static […]

使用XSD架构进行Xmlvalidation

以下代码帮助我validation具有XSD架构的XML文件。 XmlReaderSettings settings = new XmlReaderSettings(); settings.Schemas.Add(null, xsdFilePath); settings.ValidationType = ValidationType.Schema; settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler); XmlDocument document = new XmlDocument(); document.Load(xmlFilePath); XmlReader rdr = XmlReader.Create(new StringReader(document.InnerXml), settings); while (rdr.Read()) { } isValid = true; ValidationEventHandler还告诉我错误是什么,但没告诉我他们所在的’where’或’在哪一行’。 有没有办法获得XML无法validation的行号?

创建动态变量名称

我们可以在C#中创建动态变量吗? 我知道我的下面的代码是错误和编码很差。 但是这段代码有很小的逻辑,比如创建动态变量 var name=0; for(i=0;i<10;i++)// 10 means grid length { name+i=i; } var xx1=name1; var xx2=name2; var xx3=name3; 在c#中有可能吗? 在c#中创建动态变量? 并在c#中更改变量名称? 并在c#中连接变量名称( 就像我们可以连接任何控件ID或名称 )… 为什么我需要动态变量名称(方案): var variablename=”” var variablename0=No; var variablename1=Yes; var variablename2=No; 。 。 。 我有一个多行的gridview 。 我需要为每一行分配服务器端变量。 所以我需要服务器端的变量集。 我唯一可以为每个模板字段设置Text= 。 此rowCount表示每个网格行索引。 如果网格有2行,则rowCount值为0,1,2 现在我需要动态地将variablename0,variablename1,variablename2更改为variablename0,variablename1,variablename2以用于单独的行。

C#:同步两个RichTextBox的滚动位置?

在我的应用程序的表单中,我有两个RichTextBox对象。 它们将始终具有相同数量的文本行。 我想“同步”这两者之间的垂直滚动,这样当用户在一个上改变垂直滚动位置时,另一个滚动相同的量。 我该怎么做呢?

将旧的Unity代码升级到Unity 5

在触发按钮上播放动画的代码似乎不起作用。 我在Youtube上看到了一个video,并带有一个简单的animation.Play(); 它适用于那个video但是,我无法让它在我的电脑上工作。 我做错了什么或团结改变了什么? 请帮助我无法在网上找到解决方案。 所有“解决方案都不起作用”。 这是我得到的错误: 类型UnityEngine.Component不包含播放定义,也没有扩展方法可以找到UnityEngine.component类型的Play using System.Collections; using System.Collections.Generic; using UnityEngine; public class animationtrigger : MonoBehaviour { void Start() { } int speed = 10; // Update is called once per frame void Update () { if (Input.GetKeyDown(“N”)) { animation.Play(“Cube|moving side”); //transform.Translate(1 * Vector3.forward * Time.deltaTime * speed); //Animator anim = GetComponent(); […]

关键事件:ProcessCmdKey

我试图在一个小的测试Windows窗体应用程序上发生一些键盘响应,我有一个粗略的解决方案,它是覆盖ProcessCmdKey。 但是,我遇到了几个问题,而且我发现了一些不一致的问题。 不同的事件:有没有办法告诉参数ref Message msg, Keys keyData ,是否是KeyDown,KeyUp或KeyPress? KeyPress:我看过的任何地方都说KeyPress,即重复的键盘输入,只发生在字符键上,箭头键不是。 但是,事件处理程序被频繁地调用,并且在相同的mannor /具有相同的行为中,箭头键作为字符键。 这是面对KeyPress事件,还是其他什么? 理想情况下,我喜欢在表单级别处理所有键盘事件而不让它们传递给表单上的控件的方法。 但是,所有文档都让我感到困惑,并错过了关键点,因此我无法完成此操作。 欢迎任何这些主题的帮助。 谢谢!

当从List inheritance类时,XmlSerializer不会序列化其他属性

我在这里有一个情况,我需要从Listinheritance我的类,但是当我这样做时,XmlSerializer不会序列化我的类中声明的任何属性或字段,以下示例演示: public partial class Form1 : Form { public Form1() { InitializeComponent(); DoSerialize(); } private void DoSerialize() { MyClass obj = new MyClass(); obj.Add(1); obj.Add(2); obj.Add(3); XmlSerializer s = new XmlSerializer(typeof(MyClass)); StringWriter sw = new StringWriter(); s.Serialize(sw, obj); } } [Serializable] [XmlRoot] public class MyClass : List { public MyClass() { } int myAttribute = […]

如何使用RX限制事件流?

我想有效地限制事件流,以便在收到第一个事件时调用我的委托,但如果接收到后续事件则不会持续1秒。 在超时(1秒)到期后,如果收到后续事件,我希望调用我的代理。 使用Reactive Extensions有一种简单的方法吗? 示例代码: static void Main(string[] args) { Console.WriteLine(“Running…”); var generator = Observable .GenerateWithTime(1, x => x x, x => TimeSpan.FromMilliseconds(1), x => x + 1) .Timestamp(); var builder = new StringBuilder(); generator .Sample(TimeSpan.FromSeconds(1)) .Finally(() => Console.WriteLine(builder.ToString())) .Subscribe(feed => builder.AppendLine(string.Format(“Observed {0:000}, generated at {1}, observed at {2}”, feed.Value, feed.Timestamp.ToString(“mm:ss.fff”), DateTime.Now.ToString(“mm:ss.fff”)))); Console.ReadKey(); } 当前输出: […]

更改richtextbox的字体而不会丢失格式

如何在不丢失格式的情况下更改richtextbox的所有内容的字体? 我正在尝试使用 rtb.SelectAll(); rtb.SelectionFont = new Font(fontName,…); 但是字体构造函数除了字体类型之外还必须采用字体样式(粗体,斜体,…)或字体大小。 因此,使用它会改变richtextbox的所有内容的样式/大小。 当然,同样适用于richtextbox中的任何选择。