小编Swa*_*and的帖子

显示Context MenuStrip的复选框或按钮的上下文菜单

我正在设计一个日志记录功能,用户可以在其中选择要记录的事件.点击按钮,我显示这种类型的菜单: 单击按钮上下文菜单

用户可以选择多个事件,因此当用户点击它时,我需要在所选选项的前面显示"复选标记".

我无法找到此问题中提到的"Checked"或"CheckOnClick"等选项.

我尝试使用ContextMenu和ContextMenuStrips但无法实现Checkboxes.有什么建议??

c# contextmenu contextmenustrip winforms

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

用于创建DLL的编程语言:C++或C#

这不是编程怀疑!

我打算为某些应用程序编写DLL.我有两个选择可供选择:C++或C#我应该用哪种语言编写DLL?

这会影响功能吗?

我是一个完全新手并且不知道C++和C#(但是C#中的一些小程序).

在C++或C#中编写DLL的优点和缺点是什么?

非常感谢您的宝贵时间!

此致,Swanand!

c# c++ dll

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

在C#中访问COM10或更高版本的端口

我正在使用Visual Studio 2010并在C#(.NET 3.5)中编程。

我想从COM10写入/读取数据。

这是简单的代码:

static void Main(string[] args)
{
    String Portname = String.Empty;

    /* List out all COM ports present on the computer. */
    foreach (string ports in SerialPort.GetPortNames())
    {
        Console.WriteLine(ports);
        /* If COM10 exists, copy the name for further use. */
        if (ports == "COM10")
        {
            Portname = ports; //I also tried this: "\\.\\COM10";
        }
    }
    /* If COM10 not found, return */
    if (Portname == String.Empty)
    {
        Console.WriteLine("Exiting");
        return;
    }

    SerialPort Port = new …
Run Code Online (Sandbox Code Playgroud)

c# serial-port

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

停止阻塞呼叫的线程

我正在开发一个Windows窗体应用程序,以便在通过USB连接的设备上执行少量操作.对于所有操作,如读取,写入和其他操作,我们有一个自定义库.

用户点击按钮时完成写操作.

要读取,将创建一个单独的线程.可用库的问题是Read调用是阻塞的并且具有INFINITE Timeout.

如果连接失败,该线程会在Read函数调用时停止,因为只有在收到数据时此函数才会中断.

在这种情况下杀死这个线程的方法是什么?Thread.Abort()不起作用.

我正在使用C#进行编程.

c# thread-safety blocking winforms

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

处理 RxSwift 重试和错误处理的最佳实践是什么

我读过一些帖子说处理 RxSwift 的最佳实践是只将致命错误传递给 onError 并将结果传递给 onNext。

这对我来说很有意义,直到我意识到我无法再处理重试,因为它只发生在 onError 上。

我该如何处理这个问题?

另一个问题是,如何同时处理全局和本地重试混合?

例如,iOS 收据验证流程。

1、尝试在本地取收据

2、如果失败,请向苹果服务器索取最新的收据。

3,将收据发送到我们的后端进行验证。

4、如果成功,则整个流程完成

5、如果失败,检查错误代码是否可重试,然后返回1。

而在新的 1 中,它将强制要求从苹果服务器获取新收据。然后当它再次达到 5 时,整个流程将停止,因为这已经是第二次尝试了。意思是只重试一次。

因此,在这个例子中,如果使用状态机,并且不使用RX,我会最终使用状态机和共享一些全局状态一样isSecondAttempt: BoolshouldForceFetchReceipt: Bool等等。

我如何在 rx 中设计这个流程?与这些在流程中设计的全局共享状态。

error-handling ios swift rx-swift

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

删除应用程序的DLL依赖项

在我的应用程序中,我需要Zip和解压缩一些文件.为此,我使用了DotNet Zip Library(Ionic.Zip.dll-- DotNet Zip Lib)

一切正常但是当我拿出我的文件的EXE并尝试从不同的文件夹运行它时,它无法运行.我必须将Ionic.Zip.dll保存在我的应用程序所在的文件夹中.有什么出路吗?我只想要一个没有附加任何字符串的EXE文件....或者除了DotNet Zip Lib之外还有其他任何选项.

c# dependencies dotnetzip

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

在C#中识别自己的进程名称

为了防止用户运行我的应用程序的多个实例,我使用此代码: -

 Process[] pArry = Process.GetProcesses();
           int nCount = 0;
           foreach (Process p in pArry)
           {
               string ProcessName = p.ProcessName;
               ProcessName = ProcessName.ToLower();
               if (ProcessName.CompareTo("myApp") == 0)
               {
                   nCount++;
               }
           }   
           if (nCount > 1)
           {
               MessageBox.Show(AppAlreadyRunning,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
               Process.GetCurrentProcess().Kill();
           }
Run Code Online (Sandbox Code Playgroud)

但正如我们所知,如果更改exe名称,进程名称会更改.因此,如果用户将"myApp.exe"更改为"UserApp.exe",则此修补程序将无效!有什么出路吗?

我在VS2010中使用C#.谢谢!

c# process

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

我可以让C函数返回任意类型吗?

我编写了一个解释串行数据(CAN)的函数,当前返回一个浮点数.我希望函数包含一个参数,其中用户在字符串中指定返回类型,并且该函数返回该类型的值.这只是一个方便的事情,避免必须编写几乎共享所有相同代码的多个函数.

c types

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

在C#中传递二维数组的一个维度

我已经从C转到C#.我有一个接受数组的函数.我想将二维数组的一维传递给此函数.

C代码将是: -

void array_processing(int * param); 

void main()
{
  int Client_ID[3][50];
  /* Some 
     Processing 
     which fills 
     this array */
    array_processing(&Client_ID[1]);
}
Run Code Online (Sandbox Code Playgroud)

现在,当我想在C#中做同样的事情时,我该如何传递这个数组呢?功能定义如下: -

private void array_processing(ref int[] param);
Run Code Online (Sandbox Code Playgroud)

和Array将声明为: -

int[,] Client_ID = new int[3,50];
Run Code Online (Sandbox Code Playgroud)

现在我怎样才能传递Client_ID[1]给函数array_processing()

通过array_processing ( ref Client_ID[1])喊叫"错误的指数"!

c# multidimensional-array

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

反转(负)Form C# 的所有颜色

我有一个 GUI 应用程序,它有很多颜色,如绿色、红色、白色、棕色——所有这些都在黑色背景上。

我想为此应用程序添加一个屏幕截图按钮。我对其进行了编码(并且工作正常),但我必须向用户提供有关屏幕截图已拍摄的视觉指示(不是通过任何 MessageBox)。

我能想到的最好方法之一是暂时反转所有颜色并恢复正常(就像 Adob​​e Reader 中的快照一样)。

谁能帮我这个?

或者您认为可以确认屏幕截图的任何其他想法。

或者你能告诉我如何“重新绘制”整个窗口吗?

我需要一个线索来开始我的探索!:(

提前致谢!

更新:作为临时灵魂,即使在“捕获”按钮上,我也这样做了:-

   this.BackColor = Color.White;  // My Original BackColor is Black
   Update();
   Refresh();
   Thread.Sleep(250);  // I don't want responsive UI... It's like Still Picture frame. :)
   this.BackColor = Color.Black;  // Back to Normal
   Update();
   Refresh();
Run Code Online (Sandbox Code Playgroud)

c# colors

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

通过函数返回指向静态常量字符串的指针

我有一个文件,它有一个静态常量字符串和一个函数,它将返回指向该字符串的指针.文件看起来像这样:

typedef unsigned char   BOOLEAN;

#define TRUE    1
#define FALSE   0


static const unsigned char MAL_Version[8] = "2.001";

/* Function to return Version string */
BOOLEAN GetVersion ( unsigned char* pu8Version )
{
    BOOLEAN success = FALSE;

    if(pu8Version != NULL)
    {
        pu8Version = &MAL_Version[0];
        success = TRUE;
        printf("\r\nTRUE");
        printf("\r\n%s", pu8Version);
    }

    return success;
}
Run Code Online (Sandbox Code Playgroud)

在main()中,我声明一个数组并将其地址传递给GetVersion函数.当我这样做时,我会得到随机字符.

int main() {
   unsigned char buffer[10];

   GetVersion(buffer);
   printf("\r\n%s", buffer);
}
Run Code Online (Sandbox Code Playgroud)

输出是:

真正

2.001

D3

我错过了什么?函数中的指针正确打印字符串,但是当它返回时,它会打印垃圾.

c pointers

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

如果Enums是编译时间,那么#define with Enums是如何工作的?

根据此问题,首先对预处理程序进行评估,然后对枚举进行处理。我检查了这是真的!

我有一个枚举 eTypes

typedef enum
{
   eTYPE_1 = 0u,
   eTYPE_2,
   eTYPE_3,
   eTYPE_MAX
} eTypes;
Run Code Online (Sandbox Code Playgroud)

然后我定义一个尺寸为

#define MAX_ARRAY_SIZE (2 * eTYPE_MAX)

并声明为 U8 TestArray[MAX_ARRAY_SIZE]

根据链接的问题,在处理时MAX_ARRAY_SIZE,编译器不知道eTypes。然后如何TestArray获得正确的大小。我看到了6个字节的TestArray。

c enums

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