小编Jim*_*ell的帖子

BackgroundWorker RunWorkerCompleted事件

我的C#应用​​程序有几个后台工作者.有时候一个后台工作人员会开火.当第一个后台工作程序完成并RunWorkerCompleted触发事件时,该事件将触发哪个线程,UI或从中RunWorkerAsync调用的第一个后台工作程序?我使用的是Microsoft Visual C#2008 Express Edition.任何您可能有的想法或建议将不胜感激.谢谢.

.net c# events multithreading backgroundworker

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

为什么赋值运算符(=)在foreach循环中无效?

为什么赋值运算符(=)在foreach循环中无效?我正在使用C#,但我认为该参数对于其他支持的语言foreach(例如PHP)是相同的.例如,如果我这样做:

string[] sArray = new string[5];

foreach (string item in sArray)
{
   item = "Some assignment.\r\n";
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,"无法分配给'item',因为它是'foreach迭代变量'."

c# foreach variable-assignment

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

使用C#获取插入行的id

我有一个查询要在表中插入一行,该表有一个名为ID的字段,该字段使用列上的AUTO_INCREMENT填充.我需要为下一部分功能获取此值,但是当我运行以下操作时,即使实际值不为0,它也始终返回0:

MySqlCommand comm = connect.CreateCommand();
comm.CommandText = insertInvoice;
comm.CommandText += "\'" + invoiceDate.ToString("yyyy:MM:dd hh:mm:ss") + "\', " + bookFee + ", " + adminFee + ", " + totalFee + ", " + customerID +  ")";
int id = Convert.ToInt32(comm.ExecuteScalar());
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这应该返回ID列,但每次只返回0.有任何想法吗?

编辑:

当我跑:

"INSERT INTO INVOICE (INVOICE_DATE, BOOK_FEE, ADMIN_FEE, TOTAL_FEE, CUSTOMER_ID) VALUES ('2009:01:01 10:21:12', 50, 7, 57, 2134);last_insert_id();"
Run Code Online (Sandbox Code Playgroud)

我明白了:

{"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right …
Run Code Online (Sandbox Code Playgroud)

c# mysql last-insert-id

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

如何在c#中防止/取消组合框的值变化?

我在表单顶部有一个组合框,可将可编辑数据加载到下面的字段中.如果用户进行了更改但未保存,并尝试从组合框中选择其他选项,我想警告他们并给他们取消或保存的机会.

我需要一个带有可取消事件参数的"BeforeValueChange"事件.

有关如何完成的任何建议?

c# combobox winforms

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

使用C++在Windows中检测USB插入/删除事件

我正在为需要处理USB插入/删除事件的现有应用程序编写扩展.我知道感兴趣的设备的VID/PID.但是,我没有访问窗口句柄,所以我不知道是否RegisterDeviceNotification会有很多用处,除非有办法通过获取句柄WINAPI.使用C++检测USB插入/移除事件的最佳方法是什么?

Microsoft网站上的此示例代码显示了如何通过WMI接收事件通知:

如何修改以接收USB插入/移除事件?或者,我还有另一种方法吗?我正在使用Visual Studio 2008.谢谢.

附加信息

这是我到目前为止(减去错误处理):

DEFINE_GUID(GUID_INTERFACE_CP210x, 0x993f7832, 0x6e2d, 0x4a0f, 0xb2, 0x72, 0xe2, 0xc7, 0x8e, 0x74, 0xf9, 0x3e);

MyClass::MyClass()
{
    // Generate message-only window
    _pWndClassEx = (WNDCLASSEX *)malloc( sizeof(WNDCLASSEX) );
    memset( _pWndClassEx, 0, sizeof(WNDCLASSEX) );
    _pWndClassEx->cbSize = sizeof(WNDCLASSEX);
    _pWndClassEx->lpfnWndProc = (WNDPROC)WndProc; // function which will handle messages
    _pWndClassEx->hInstance = GetCurrentModule();
    _pWndClassEx->lpszClassName = pClassName;
    atom = RegisterClassEx( _pWndClassEx );
    _hWnd = CreateWindowEx( 0, pClassName, pWindowName, 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, NULL, NULL ); …
Run Code Online (Sandbox Code Playgroud)

c++ usb events asynchronous virtual-serial-port

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

System.Windows.MessageBox vs System.Windows.Forms.MessageBox

我无法找出两个消息框之间的主要区别.System.Windows.MessageBox和之间有什么区别System.Windows.Forms.MessageBox

.net c# wpf messagebox winforms

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

在鼠标悬停文本时显示工具提示

当鼠标悬停在我的自定义富编辑控件中的链接上时,我想显示工具提示.请考虑以下文本:

我们都晚上睡觉.

就我而言,睡眠这个词就是一个链接.

当用户在链接下移动鼠标时,在这种情况下"睡眠",我想显示链接的工具提示.

以下是我的想法,但他们没有工作

1)捕获OnMouseHover

if(this.Cursor == Cursors.Hand)
   tooltip.Show(textbox,"My tooltip");
else
   tooltip.Hide(textbox);
Run Code Online (Sandbox Code Playgroud)

但这没有用.

UPDATE

提到的链接不是 URL,即这些是自定义链接,因此Regex在这里不会有太多帮助,它可以是任何文本.用户可以选择创建链接.

虽然我没有尝试过GetPosition方法,但我认为在设计和维护方面它不会那么优雅.

让我说我在我的richedit框中有以下行

我们晚上睡觉.但蝙蝠保持清醒.蟑螂在夜间变得活跃.

在上面的句子中,当鼠标悬停在它们上面时,我想要三个不同的工具提示.

sleep -> Human beings
awake -> Nightwatchman here
active -> My day begins
Run Code Online (Sandbox Code Playgroud)

我陷入困境OnMouseMove如下:

使用Messagebox

OnMouseMove( )
{

   // check to see if the cursor is over a link
   // though this is not the correct approach, I am worried why does not a …
Run Code Online (Sandbox Code Playgroud)

.net c# tooltip richtextbox winforms

19
推荐指数
4
解决办法
14万
查看次数

使用CreateWindowEx创建仅消息窗口

我正在尝试使用CreateWindowEx生成仅消息窗口:

_hWnd = CreateWindowEx( 0, NULL, NULL, 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, NULL, NULL );
Run Code Online (Sandbox Code Playgroud)

当我的应用程序执行此行时,它始终返回_hWnd = 0.我究竟做错了什么?

c++ windows winapi

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

嵌套关键部分是否有效?

例如,这是否有效?

CRITICAL_SECTION cs;

::InitializeCriticalSection( &cs );

::EnterCriticalSection( &cs );      // First level
::EnterCriticalSection( &cs );        // Second level

/* do some stuff */

::LeaveCriticalSection( &cs );        // Second level
::LeaveCriticalSection( &cs );      // First level

::DeleteCriticalSection( &cs );
Run Code Online (Sandbox Code Playgroud)

显然,我永远不会故意这样做,但是如果由于函数调用而产生这样的结果,那么"第一级"被调用来锁定对象以进行复杂(例如搜索)算法和"第二级"在该对象的访问器函数中被调用?

c++ winapi critical-section

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

真棒:alt + tab只在两个应用之间切换

我刚刚安装了我的wm.当我使用awtome做alt + tab时,它只是切换两个应用程序,它不可能让其他人活跃......任何想法?

focus window awesome-wm

17
推荐指数
3
解决办法
8958
查看次数