Tag: vb.net

什么是最好的.NET音频压缩库?

我正在为.NET寻找一个好的音频压缩库。 使用MP3的任何东西都已经出局(因为许可问题)。 基本上我只需要能够将常规WAV音频数据压缩成某种格式,然后解压缩回WAV。 最好是代码都是.NET(C#或VB.NET),但我认为这不太可能。 它应该是无损的或相对无损的(最好是192个MP3,最好是),压缩比至少要好到4:1。 我更喜欢基于缓冲区的API,但基于文件的API也可以。 有谁知道这样的事情?

在ac#类中重载vb.net和运算符

我这里有一个非常独特的问题。 我们的业务应用程序是使用c#和vb.net构建的。 我们一直试图接近一个标准,并削减我们的一些核心,已经重复的对象的脂肪。 我们正在变得非常接近,但是当我试图将一个重复的对象合并到c#中时,我们的vb.net代码现在开始抛出错误“运算符’&’未定义为类型’CSType’和’String’,当我尝试执行vb时使用和号(&)的.net字符串连接。有趣的是,如果我在c#中使用带有CSType的’&’(在正确重载之后),我得到了我期望的字符串连接。 以下是我对CSType的基本重载: public static string operator &(CSType c1, string s2) { return c1.ToString() + s2; } public static string operator &(string s1, CSType c2) { return s1 + c2.ToString(); } 当我使用CSType和字符串在c#中运行’&’运算符时,我得到了预期的结果,当我尝试在vb.net中执行时,代码将无法编译,从而给出了一个错误: “运算符’和’未定义类型’CSType’和’字符串’” CSType也隐式转换为大多数数据类型,所以我认为’&’可能存在一些问题,假设它是一个按位运算符,但我猜想通过给我乱搞执行而不是编译会失败错误。 无论如何,我有点想把这个课放在c ++中,我知道我可以从中得到我需要的东西,但已经不够用2种语言了。

命名空间在.net中可以拥有的类数是否有限制?

命名空间在.net中可以拥有的类数是否有限制? 还有什么是命名空间中应该有的类的推荐数量?

Shift +鼠标滚轮水平滚动

shift +滚轮的使用对于水平滚动来说是相当常见的。 这两个都很容易捕获。 我可以使用带有KeyDown,KeyUp事件设置的标志的MouseWheel事件来跟踪按下shift键的时间。 但是,我如何实际触发水平滚动? 我知道WM_MOUSEHWHEEL,可以用来触发事件吗? 更新:对于System.Windows.Form有一个类型为HScrollProperties的HorizontalScroll属性。 您可以操纵该对象上的Value属性来更改水平滚动条的位置。 但是,到目前为止,我还没有发现该对象可用的任何其他控件。

VS2012安装后System.Uri.ToString行为更改

在开发机器上安装VS2012 Premium后,unit testing失败,因此开发人员修复了该问题。 当更改被推送到TeamCity时,unit testing失败。 除了升级的解决方案文件与VS2012兼容之外,项目没有改变。 它仍然以.net框架4.0为目标 我已经将问题Uri.ToString为在调用Uri.ToString时转义unicode字符的问题。 以下代码复制了该行为。 Imports NUnit.Framework Public Class UriTest Public Sub UriToStringUrlDecodes() Dim uri = New Uri(“http://www.example.org/test?helloworld=foo%B6bar”) Assert.AreEqual(“http://www.example.org/test?helloworld=foo¶bar”, uri.ToString()) End Sub End Class 在未安装VS2012的计算机上在VS2010中运行此function成功,在VS2010上安装VS2012的计算机上运行此function失败。 两者都使用最新版本的NCrunch和NuGet的NUnit。 来自失败断言的消息是 Expected string length 46 but was 48. Strings differ at index 42. Expected: “http://www.example.org/test?helloworld=foo¶bar” But was: “http://www.example.org/test?helloworld=foo%B6bar” —————————————————–^ .NET 4和.NET 4.5的MSDN文档显示, ToString不应对此字符进行编码,这意味着旧行为应该是正确的。 A String […]

WPF TextFormatter中第二行的缩进

我正在使用TextFormatter制作WPF文本编辑器。 我需要在每个段落中缩进第二行。 第二行中的缩进宽度应该类似于第一行上第一个单词的宽度,包括第一个单词后面的空格。 像这样的东西: Indent of second line in Indentation Inde second line in Indentation Indenta of second line in Indentation of second l ine in Indentation of second line in Inde ntation of second line in 第二件事:段落的最后一行应该在中心。 如何实现这一目标? 提前致谢!!

如何让智能手机像滚动winforms触摸屏应用程序(滚动面板)

在网上搜索完文章后,我想出了一个基于winforms的触摸屏应用程序的设计,需要像滚动一样的智能手机。 该应用程序本身将在平板电脑或触摸屏桌面上运行。 我把我要滚动的所有内容放在面板上。 将autoscroll设置为true(将显示滚动条) 现在将整个面板放在一个组框中 缩小combobox,直到隐藏滚动条(视觉上隐藏,不可见= false) 现在我被困在的有趣部分。 我想我必须在面板上处理mousedown,mouseup和mousemove以设置自动滚动位置,以便当有人触摸面板并拖动时,它会滚动魔术。 请帮助填写以下方法存根中的几行代码。 autoscrollposition上的msdn doc非常混乱,因为它返回负数,但需要设置为abs,而不是。 Point mouseDownPoint; Point mouseUpPoint; Point mouseDragPoint; private void myPanel_MouseDown(object sender, MouseEventArgs e) { this.mouseDownPoint = e.Location; Console.WriteLine(“Mouse down at {0}”, e.location); } private void myPanel_MouseUp(object sender, MouseEventArgs e) { this.mouseUpPoint = e.Location; this.mouseDownPoint = new Point(); //will set for IsEmpty check Console.WriteLine(“Mouse Up […]

使用generics属性调用重载方法会调用错误的重载

我有一个基本的filter类,存储string参数名称和通用T值。 filter有一个方法Write(writer As IWriter) ,它将filter的内容写入HTML页面。 Write方法有两个重载,一个带两个字符串,它接受一个字符串和一个对象。 这让我自动引用字符串。 问题是,当我调用writer.Write(ParameterName, Value)而T是一个string ,它调用字符串/对象的重载,而不是字符串/字符串! 如果我直接在编写器上调用Write方法,它将按预期工作。 这是C#中的SSCE。 我在VB和C#中测试了这个,发现了同样的问题 void Main() { FooWriter writer = new FooWriter(); Filter f = new Filter() {ParameterName = “param”, Value = “value”}; f.Write(writer); //Outputs wrote w/ object writer.Write(f.ParameterName, f.Value); //Outputs wrote w/ string } class FooWriter { public void Write(string name, object value) { Console.WriteLine(“wrote […]

有没有办法在运行时构建新类型?

我会问一个可能听起来很奇怪的问题。 有没有办法在运行时构建一个新类? 或者至少,向现有类添加新属性。 我的意思是创建一个不存在的类,而不是现有类的实例。 我以后可以使用reflection来加载和使用这个类。

如何通过名称引用Windows窗体控件(C#/ VB)

假设我在一个名为“UserName”的窗体上有一个标签控件。 如何使用标签名称以编程方式引用该标签? 例如,我可以这样做: For each ctrl as Control in TabPage.Controls If ctrl.Name = “UserName” Then ‘ Do something End If Next 这似乎效率很低。 我想做的事情如下: TabPage.Controls(“UserName”).Text = “Something” 我做了一些谷歌搜索但找不到满意的答案。 大多数建议循环,有些人说.NET 2005不支持使用字符串名称直接refenece,而FindControl方法只是asp.net … 编辑 感谢到目前为止的回复。 这里有一些细节。 我有一个带有三个tabpages的窗体,所有这些设计和function都非常相似,即相同的下拉菜单,标签,以类似的方式对事件做出反应等。 我没有为每个标签页的每个事件编写代码,而是构建了一个控制每个标签页的事件等的类。 例如,在每个标签页上都有一个名为“RecordCounter”的标签,它只是通过在下拉菜单中选择变量来填充数据网格视图中的行数。 所以我想要做的是,在下拉菜单中选择变量后,datagridview会自己填充数据,然后我只想显示标签中的行数(“RecordCounter”)。 这是每个标签页上完全相同的过程,所以我正在做的是将标签页传递给类,然后我希望能够引用“RecordCounter”然后更新它。 在我的类中,我将ActivePage属性设置为用户选择的TabPage,然后希望能够执行以下操作: ActivePage.RecordCounter.Text = GetNumberOfRows()