小编Dan*_*n W的帖子

更改屏幕的滤色器以使用多个显示器

我做了一个程序更改类似通量的方式做屏幕的彩色滤光片(所示的代码要做到这一点是最主要的问题在这里).但是,我的几个用户表示它不会影响具有两个或更多显示器的其他屏幕.我该如何修改代码呢?

c# graphics interop multiple-monitors gdi

6
推荐指数
1
解决办法
735
查看次数

神秘的VBIDE参考在C#项目中被打破

我很久以前创建了一个软件程序,刚刚打开了项目,当我尝试编译时,它引发了两个错误,参考VBIDE:

警告2找不到类型库"VBIDE"的包装器组件.验证(1)COM组件是否已正确注册,以及(2)目标平台是否与COM组件的位数相同.例如,如果COM组件是32位,则目标平台不能是64位.SonicPhoto

...和:

警告3找不到引用的组件"VBIDE".

问题是 - 我永远不会记得添加此引用,因为我的项目是一个声音导向的程序,VBIDE是"Microsoft Visual Basic for Applications Extensibility 5.3",它与C#无关,更不用说我的程序了.如果我删除引用,解决方案编译并似乎完美运行.我认为如果它运行,我完全可以删除它吗?

也许我错误地添加了这个引用?也就是说,我的软件已经存档较旧,并且引用也在那里,当我知道至少有一个旧软件副本可以编译时,也没有编译.我在另一台计算机上也有一个副本,并且引用也在那里,但引用没有被破坏,因此项目编译并运行.

c# com reference

6
推荐指数
1
解决办法
1万
查看次数

如果另一个工具条位于同一个工具条面板上,那么移动工具条稍微过一点就会创建一个新行

当我在同一个工具条面板中使用另一个工具条向左拖动工具条(也许只是为了让它在角落里)时,我拖动的那个跳到一个"新"行,好像我把它向下移动了一样.解释起来相当棘手,所以这里有几个图表.

图A:我将工具条向左移动,并且"意外地"向左移动太远(只有几十个像素,用户可以轻松做到).

图B:发生这种情况,拖动的工具条会连续下降.

在此输入图像描述

如何防止这个新行被"创建"?作为最后的手段,我很乐意防止在任何情况下创建新行(例如:如果用户打算将其向下拖动以创建新行).

我尝试过LayoutStyle无济于事.

c# toolstrip winforms

5
推荐指数
1
解决办法
1398
查看次数

在RichTextBox中获取滚动条"位置"并禁用滚动条

我之前的帖子显示了如何在RichTextbox中获取水平或垂直滚动​​条的位置.但是,这些仅在启用滚动条时有效.如果将滚动条设置为无(通过richTextBox1.ScrollBars = RichTextBoxScrollBars.None;),则仍然可以向下滚动框的底部(如果禁用WordWrap则向右滚动).但是,getVerticalScroll()getHorizontalScroll()方法(如我发布的链接中所示)现在只返回0.他们似乎需要"看到"滚动条才能真正起作用.

那么当滚动条被禁用时,如何获取(并设置)"滚动位置"?

c# winapi scroll scrollbar richtextbox

5
推荐指数
2
解决办法
2635
查看次数

获取窗口最大化时非最大化的窗口位置/大小

当用户调整程序窗口(Winforms)的大小和位置时,他们希望看到窗口处于相同的位置,即使在关闭并重新打开程序之后也是如此。我所做的就是存储表单的宽度、高度、Location.X 和 Location.Y 属性,并在程序重新打开时将它们设置回来。

问题是当窗口最大化时,宽度、高度、X、Y 不是指非最大化的宽度/高度/X/Y,而是指最大化尺寸。

因此,当用户将窗口最大化,关闭并重新打开程序,然后继续取消最大化窗口时,它不会返回到原始位置/大小,而是停留在完整大小/位置。

那么,在某些事件执行后,如果不使用拼凑来存储变量,如何获取窗口最大化时的非最大化位置和大小呢?

c# forms window maximize winforms

5
推荐指数
1
解决办法
1016
查看次数

最常见的区域设置,以实现全球兼

我不认为在StackOverflow上曾经问过这个问题.我正在编写一个C#程序,但这个问题适用于Windows 7下的任何编程语言.

由于我想让我的程序与尽可能多的国家兼容(但手头的时间有限),要测试的十大最常见的语言环境是什么?由于我使用的是C#,因此可以通过以下方式找到:

CultureInfo.CurrentCulture.ToString()
Run Code Online (Sandbox Code Playgroud)

据我所知,这些与下面的项目相对应:控制面板 - >区域和语言 - >格式

一个明智的选择是"英语 - (美国)"(在C#下是"en-US").这只是一个 - 我正在寻找另外5-10左右.

前10名还应包括"多样性".例如,如果他们都使用句点作为小数点,那将不是很有帮助.我还希望至少有一个使用逗号作为小数点(如欧洲,南美,俄罗斯等).

同样,我想要使用'.','/'和' - '作为日期分隔符的语言环境.

所以我原来的问题现在有点复杂,但可能更有用.我想要最常用的语言环境,但是对于多样性有轻微到中等偏见,这样我可以更容易地推广测试,更好地保证它们可以在未经测试的语言环境下工作.

c# globalization locale internationalization

4
推荐指数
2
解决办法
2446
查看次数

将CJK字符粘贴到RichTextBox会添加不需要的第二种字体

如果将下面的内容粘贴到RichTextBox中,则CJK字符和之后的所有内容将变为第二种字体--SimSun.

插入CJK字符:色

...进行此字体更改.

这会以不需要的方式影响RichTextBox的格式,并且还会大大减慢大型复制/粘贴的速度.

我已经尝试将RichTextBox设置为使用unicode字体,例如"Lucida Sans Unicode",并且还确保我从(Wordpad)复制的源也使用"Lucida Sans Unicode"字体.然而,在一天结束时,当我粘贴到RichTextBox时,它强制使用另一种字体,如SimSun(或其他字体,如"Shonar Bangla"或"Microsoft Himalaya",如果我们使用其他类型的字符).

由于"Lucida Sans Unicode"拥有它们,为什么它不能坚持使用一种字体?

我注意到其他人也有类似的问题: RichTextBox - 保留原始格式(字体),即使在粘贴之后

不幸的是,该页面上的解决方案对我不起作用,因为我仍然发现RTB在CJK字符后使用了另一种字体.

c# unicode fonts richtextbox cjk

2
推荐指数
1
解决办法
1099
查看次数

我可以使用Oracle在列标题中转义双引号吗?

创建一个带双引号的表来逃避真正的双引号似乎在Oracle的SQL语法中不起作用:

CREATE TABLE "MyTable" (
"Col""umn 1" varchar(168)
);
Run Code Online (Sandbox Code Playgroud)

以上失败.有没有办法逃避双引号使'Col'umn 1'?

sql database oracle escaping header

2
推荐指数
1
解决办法
1599
查看次数

如何避免Winforms中ToolStrip左侧的3像素间隙?

我正在使用Windows 7和Winforms/C#.

当我将工具条添加到工具条容器时,我在工具条左侧获得3个像素的空间.即使我将位置设置为0,0,它也会将其重置为3,0.这是一张图片来证明这一点:

在此输入图像描述

我怎么能避免这个?我已经将ToolStripContainer的填充和边距设置为0,并尝试使用不同的RenderModes,但似乎没有任何帮助.有任何想法吗?

c# margin padding toolstrip winforms

2
推荐指数
1
解决办法
1680
查看次数

'Grokkable' 算法来理解指数是浮点的取幂

先澄清一下:

  • 2^3 = 8。这相当于 2*2*2。简单。
  • 2^4 = 16。这相当于 2*2*2*2。也很轻松。
  • 2^3.5 = 11.313708……呃,这可没那么容易理解。

我想要的是一个简单的算法,它最清楚地显示了 2^3.5 = 11.313708。除了基本的加法、减法、乘法或除法运算符之外,最好不要使用任何函数。

代码当然不必很快,也不必很短(尽管这会有所帮助)。别担心,它可以近似于给定的用户指定的准确度(这也应该是算法的一部分)。我希望会有一个二进制印章/搜索类型的事情,因为这很容易理解。

到目前为止,我已经找到了this,但在概念层面上,最重要的答案远非简单易懂。

答案越多越好,因此我可以尝试了解解决问题的不同方法。

我对答案的语言偏好是 C#/C/C++/Java,或者我所关心的伪代码。

c c# c++ algorithm exponentiation

2
推荐指数
1
解决办法
708
查看次数

糖衣阵列(动态调整大小并随意设置任何元素)

我想要我的蛋糕并吃掉它.

当你超越数组的初始容量时,我喜欢C#中Lists的动态扩展方式.但这还不够.我希望能够做到这样的事情:

int[] n = new int[];    // Note how I'm NOT defining how big the array is.
n[5] = 9
Run Code Online (Sandbox Code Playgroud)

是的,速度会有一些牺牲,因为在幕后,.NET需要检查是否已超出默认容量.如果有,则可以将阵列扩展5倍左右.

遗憾的是,对于Lists,你并不是真的想要设置一个任意元素,虽然你可以这样做,但是如果没有初步设置List的大小,仍然无法直接设置say,第五个元素,更不用说让它在尝试时动态扩展.

对于任何解决方案,我希望能够保持简单的方括号语法(而不是使用相对详细的方法调用),并且当它不扩展时,它具有相对快速(最好与标准数组一样快)阵列.

.net c# arrays list syntactic-sugar

1
推荐指数
1
解决办法
168
查看次数

微型数据库C#库/代码处理多列数据?

我正在寻找一个多列的数据库,但即使在SQLite的在兆,似乎有点小题大做(除非你使用像它不适用于C#).我只想要100-500k的代码.这里最好的选择是什么?

C#中的通用字典在某种程度上很有用,但默认情况下,它不允许您从给定值中检索键.同样,我可能有两列以上的数据,即使我使用了一个BiDictionary,其值为类/结构(对于多个值),我需要找到一个n列值的键,然后找到新的o-column值的关键.所以这有点不方便(加上该链接是一个不完整的实现,甚至没有'set'命令).

这是我可能创建的表的一个简单示例(但是我可能有十几列或一千行):

name       type colour  length
orange     a    orange  5
apple      a    green   4
banana     c    yellow  7
strawberry b    red     3
blackberry b    black   2
gooseberry b    green   2
Run Code Online (Sandbox Code Playgroud)

我想从任何其他值中检索/设置表中的任何值/ s,最好使用LINQ或类似SQL的查询以及快速检索/写入和大数据集(如果可能).

c# sql linq database

0
推荐指数
1
解决办法
649
查看次数

如何在 Windows 启动时隐藏 C# 程序,但在正常打开该程序时不隐藏该程序?

我有一个 (.NET) 程序,它会在 Windows 启动时自动启动。但是,我不希望显示主 GUI 窗口(我会将其隐藏在托盘中)。

但是,我希望当用户从任务栏/快速启动以正常方式打开程序时当然会显示该窗口。

我可以使用什么代码来解决这个问题?

要添加我用来在 Windows 重新启动时加载程序的注册表项,代码如下:

RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

rk.SetValue(softwareName, Application.ExecutablePath.ToString());
Run Code Online (Sandbox Code Playgroud)

c# windows system-tray startup launch

0
推荐指数
1
解决办法
1372
查看次数