Tag: c#

如何在窗口格式的datagridview的单元格中放置自定义控件

我正在开发一个窗口表单应用程序。 我需要在数据网格视图的单元格中放置包含两个标签的自定义控件。 我已经创建了自定义控件。请指导我使用自定义控件填充单元格

无法推断出Action 中的type参数,但是从Func 可以得到

我一直在玩仿制药和代表,我发现了一些我不理解的东西。 我有非常相似的通用静态方法,一个接受Action ,第二个接受Func 。 现在的问题是:如果我在没有显式类型的情况下调用接受Func那个,编译器就可以了。 但是接受Action无法编译我的程序(请参阅错误消息的代码)。 我的问题是:为什么编译器能够识别返回类型,但是无法识别参数类型? public interface IMessage { } public class Message : IMessage { } static void HandleAction(Action action) where TMessage : IMessage { } static void HandleFunction(Func action) where TMessage : IMessage { } static void A(Message message) { } static Message F() { return new Message(); } static void […]

如何在网页上获得单词数量?

我需要在网页上获得WORDS的总数。 我知道System.Net.WebClient类。 但它的DownloadString()方法返回整个HTML标记,因为我需要的只是TEXT,这样我就能算出单词的数量。 任何想法/建议欢迎。

在分配控制台之前调用Console.WriteLine

我最近遇到了我的应用程序的以下问题:尽管已使用AllocConsole分配了控制台,但它没有显示任何控制台输出。 我很快就弄明白,这是由于在调用AllocConsole之前写入控制台的尝试(深深隐藏在代码中)引起的。 所以它看起来像这样: Console.WriteLine(“Foo”); // no console allocated yet AllocConsole(); // console window appears Console.WriteLine(“Bar”); // expecting “Bar” in the console, but the console is blank 所以我的问题是:为什么会发生这种情况? 我没有看到任何例外(虽然我认为他们在那里)。

c#如何在将字符串移动到资源以进行本地化时处理Newline字符?

我正在用c#编写一个应用程序。出于本地化的目的,我将所有的字符串都移到了资源上。 字符串的一些示例: “First sentence.\n Second sentence.” “wait…” 在第一个字符串中有换行符”\n”我应该将换行符移动到资源。 在第二个字符串中,我应该将三个点移动到资源还是应该将字符串拆分为两个部分,如”wait” + “…”并仅将”wait”移动到资源。 我正在使用谷歌翻译将字符串翻译成其他语言,我担心换行字符”\n”将无法通过谷歌翻译很好地翻译成其他语言,因此我犹豫是否将新行字符转移到资源上。 这是我对本地化的第一次看法。如果您有任何进一步的想法或指出我正确的方向,建议。 谢谢。

表单关闭时的MessageBox

我在关闭应用程序之前使用此代码进行提问,但它无法正常工作。 我的代码如下。 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dlgresult = MessageBox.Show(“Exit or no?”, “My First Application”, MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dlgresult == DialogResult.No) { e.Cancel = true; } else { Application.Exit(); } }

构造函数链的目的是什么?

在阅读了这个构造函数链接问题后,我只是想知道为什么会有人进行构造函数链接? 有人可以对可能有用的情景类型有所了解。 这是一个很好的编程习惯吗?

指定演员表无效

我正在尝试使用以下代码从我的数据库中获取Score_Waarde值: critid = critid_arr[teller2].ToString(); int scorehulp = 0; string userid = Session[“userid”].ToString(); SqlCommand cmd3 = new SqlCommand(“SELECT Score_Waarde FROM Score WHERE Crit_ID = ‘” + critid + “‘ AND User_ID = ‘” + userid + “‘ “, con); scorehulp = (int)cmd3.ExecuteScalar(); 当我尝试运行它时,我收到以下错误: 指定的强制转换无效 。 我不明白为什么我收到此错误,因为critid和userid给出了正确的值。

TcpClient或HttpWebRequest到Apple TV 30秒后结束?

我正在使用C#创建一个库来使用Airplay协议将照片和video发送到Apple TV(特别是与第3代一起使用,但希望这对此无关紧要)。 https://airlib.codeplex.com/ 根据此规范,Airplay的所有命令都是端口70上的HTTP: http : //nto.github.com/AirPlay.html 我已成功地在Apple TV上播放照片和video,但无论我做什么,AppleTV都只播放30秒的video。 看起来我的C#客户端发出播放命令就是在30秒时断开连接,这导致AppleTV结束播放会话。 我认为这个的原因: 完全终止客户端应用程序会产生与等待30秒相同的行为(基本上强制连接关闭)。 手动关闭HttpWebRequest或TcpClient连接会产生相同的行为(在播放会话中途)。 无论我持有断点多长时间以阻止GetResponse()调用,video总是在WebRequest开始发送消息后30秒超时。 为video使用不同的源(IIS,外部Web服务器)不会更改行为。 即使video已经在AppleTV上缓存并且没有重新流,超时仍然会发生。 我非常确定客户端请求需要在video的“播放”过程中保持连接,据我所知,我已将其编码为此。 我真的在我的智慧结束。 我已经尝试了我能想到的所有内容,包括作为HttpWebRequest和原始TcpClient(它们都工作但都超时)执行请求,将接收/发送超时设置为疯狂数字,并循环读取Tcp流确保有“活动”。 好像AppleTV期待我发送“嘿,继续播放”的消息,但我还没有从网上的任何来源看到类似的东西。 我希望这只是一些愚蠢的东西,我不是基于我缺乏Http / Tcp知识。 这是我的代码: Uri url = “http://somevideo.com/video.mov”; float startPosition = 0; TcpClient tcpClient = new TcpClient(“192.168.1.20”,7000); tcpClient.ReceiveTimeout = 100000; tcpClient.SendTimeout = 100000; //get the client stream to read data from. NetworkStream clientStream = tcpClient.GetStream(); […]

如何在C#中按以…开头的属性选择节点

我有这个xml文档,我希望按’/ employees /’开头的属性选择节点。 Employee 1 Robert Employee 2 Jennifer 所以在C#中,我会做这样的事情: parentNode.SelectNodes(“//table/tr/th/a[@href=’/employees/…..’]”) 这可能与C#有关吗? 谢谢!