小编Mar*_*k T的帖子

替换是/否/取消MessageBox(C#)

我正在寻找标准窗口YES/NO或YES/NO/CANCEL MessageBox的合适替代品.

我经常看到这些标准对话框被滥用的方式如下:"以纯文本格式保存答案是,或保存在HTML答案中".显然,文本应显示为"另存为:"按钮应标记为"文本"和"HTML".这不是一个肯定/没有问题的问题,虽然它可以用这种方式表达,但阅读和理解并不容易.

Microsoft无法更改按钮上的文本.没有快速/简单的方法可以从头开始构建替换...正如使用上述笨拙风格的应用程序数量所证明的那样.

是否有任何免费的C#替换对话框或MessageBox,至少可以让你:
- 指定按钮的数量
- 指定每个按钮上显示的文本
- 指定

我看过的默认按钮,但无法找到.

(我会自己构建一个,但是我不熟悉完全功能控件应该具有的所有行为,因为我只需要/使用/知道一个小子集.我不使用的两个例子:主题和国际化.I需要我的同事也想要使用的东西.)

c# messagebox winforms

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

使用自动滚动进行平滑滚动

我在Windows窗体上有一个Panel.Panel已启用自动滚动.滚动条按原样显示,滚动条通常按预期运行.

但只有在释放鼠标按钮时才会更新面板的内容.如何在滚动条移动时滚动内容.(我想复制大多数现代程序的滚动行为,如文字处理程序和Web浏览器......移动滚动条,内容也会立即滚动.)

我正在使用C#,Visual Studio 2008专业版和Windows XP专业版.

c# forms windows panel autoscroll

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

隐藏一个功能

我有一个班,负责复杂的科学计算.它被设置为仅允许用户创建正确实例化的案例.但是,要正确测试代码,需要直接设置内部状态变量,因为参考文档在其测试用例中提供了这些数据.但是,如果做得不正确,它可能会使州无效.

所以我必须有能力,一个成员函数,从单元测试程序中设置内部变量.但我想强烈反对普通用户调用此功能.(是的,一个坚定的用户可以捣乱任何东西......但我不想宣传有办法做错事.)

例如,能告诉Intellisense不显示该功能会很高兴.

我目前最好的解决方案就是将函数命名为:DangerousSet().

我还有其他选择吗?

跟进

我发现David B的答案对我的情况最有用.谢谢!
Mufasa建议使用反射很好,但更难实现(对我而言).
克里斯建议使用装饰器很好,但没有成功.
BFree对XML的建议也很好,并且已经在使用,但并没有真正解决问题.

最后,BillTheLizard建议问题出现在源文档中,这不是我可以控制的.国际专家出版高度技术性的书籍和期刊文章供社区使用.他们没有满足我的特殊需求这一事实是生活中的事实.根本没有替代文件.

c# intellisense visual-studio

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

类似乎在没有实例的情况下使用.有可能的?VB.net

简短版本:正在使用一个类而没有实例化它的类型的变量.怎么样?

我有一个巨大的遗留程序,从VB6转换为VB.net.它正在编译并且许多方面都有效,但是存在与MDI(多文档界面)显示相关的问题.我已将其他测试表单放在父MDI表单下,并且它们正确显示.有问题的表格不会显示.(而且,当然,它是最重要的,也是最复杂的形式.我希望我可以重写它,但是没有可能.)

有一个类MDI1,在许多其他类的代码中使用了7000多次.MDI1类以不显示的形式广泛使用.无论在何处使用MDI1,它总是简称为MDI1或Namespace.MDI1.据我所知,它永远不会被实例化为一个对象.就好像它是一个单身人士,不知何故,但我看不出任何东西使它成为一个.

该类的标题如下:

Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Friend Class MDI1
  Inherits System.Windows.Forms.Form
  Dim MDI_Activated As Boolean

  Public Sub New()
    MyBase.New()
    InitializeComponent_Renamed()
  End Sub
  ...
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里会发生什么?

我尝试通过右键单击并选择"转到定义"来检查Visual Studio的每个地方都会带我回到类定义(上面代码的第4行),而不是类型的变量MDI1.我搜索了整个源代码(使用Visual Studio和Visual Studio外部的grepwin),并且找不到使用MDI1类型实例化的变量.

我不明白对类的调用是如何工作的,没有该类型的变量.

非常感谢帮助.

我正在使用Visual Studio 2010 Professional,这是我可以访问的最新版本.

vb.net singleton instantiation

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

在C#托管DirectX中制作自定义网格

我需要在运行时使用C#中的Managed DirectX 制作DirectX 3D网格.我无法找到有关如何执行此操作的任何信息.

  1. 不,我不能使用3D建模程序来制作我的对象.它们必须精确地确定尺寸和形状,并且在运行之前我没有任何尺寸或形状信息.
  2. 不,我无法从现有的DirectX网格功能构建模型.(一个简单的例子:DirectX的将让你轻松使用锥网和气缸网铅笔模型的过程中,你必须携带两个网格为你的铅笔,不只是一个,并正确定位和定向每个但你.甚至不能将铅笔的模型纵向分成两半,因为没有提供半圆柱或半锥形网格.)
  3. 在运行时,我已经计算了所有顶点并知道要连接哪些顶点以生成必要的三角形.
  4. 我需要的只是一种纯色.我不需要纹理贴图.

可以使用此DirectX调用获取球体
Mesh sphere = Mesh.Sphere(device, sphereRadius, sphereSlices, sphereStacks);
网格:此网格是在运行时构建的.

我需要知道的是如何制作类似的功能:
Mesh shape = MakeCustomMesh(device, vertexlist, trianglelist);
两个列表可以是任何合适的容器/格式.

如果有人能指出我管理的DirectX(C#)示例代码,即使它只是从3个硬编码三角形构建网格,这将是一个很大的好处.

c# directx runtime managed mesh

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

找到.exe的图标

我有一个.exe文件的路径名.

如果将此文件放在桌面上,如何找到Windows将使用的图标路径?(我想在我自己的程序中显示这个图标.)

我需要能够在运行时通过我的C#程序找到图标.

在Visual Studio 2008中使用C#.

c# icons exe find locate

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

Windows、VB6 上的多客户端进程间通信

多个客户端程序与单个服务器程序通信的最佳方式是什么,所有程序都运行在一台 Windows 计算机上?全部用VB6编写。我很感激你如何解决这个问题的建议。

注意:我们正在努力过渡到 .NET,但必须在 .NET 准备就绪之前向 V6B 版本添加功能。

可能性包括 TPC 连接、命名管道、共享内存、消息、文件等。

客户端向服务器传递一个字符串作为输入,服务器将它与只有服务器知道的数据结合起来,生成另一个字符串返回给客户端。两个字符串都只有大约 100 个字符长。仅当需要打开新文件时才联系服务器,因此通信量非常低……可能在 15 秒内有 10 个呼叫,然后是一个小时的空闲时间。

但是,两个客户端可能会选择大约在同一时间请求信息。阻塞/锁定当然是可以接受的,因为服务器将在不到一秒的时间内完成每个请求,并且几秒钟的延迟对任何程序都不重要。

服务器的算法很复杂,并且出于多种对应用程序重要的原因,不应在每个帮助程序中复制。这就是需要服务器的原因。

背景:
我正在为现有的大型遗留程序添加功能。这个单一程序还有其他几个遗留程序,它们充当帮助程序,并在用户做出某些选择时运行。这些程序是用一个 shell 命令启动的,而不仅仅是单独的线程。例如,一名助手将新数据从 DVD 驱动器加载到硬盘驱动器上。另一个助手只显示行星当前位置的图表。

这是一个大型商业遗留程序,恰好是用 VB6 编写的。我们正在努力将它和所有帮助程序转换为 .NET,但必须首先在 vb6 下发布具有此附加功能的新版本。(请不要告诉我不要使用 VB6,因为我们已经搬到别处了。)我们需要一个临时的 VB6 解决方案。

windows vb6 ipc

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