小编Bre*_*eze的帖子

C#Winforms Designer无法打开,因为它无法在同一个程序集中找到类型

我收到以下错误

找不到类型'My.Special.UserControl'.请确保引用包含此类型的程序集.如果此类型是开发项目的一部分,请确保使用当前平台或任何CPU的设置成功构建项目.

但是没有任何意义的是,My.Special.UserControl它与表单在同一个程序集中.更重要的是,如果我在Designer.cs文件上查看代码,那么对它的引用My.Special.UserControl似乎没问题.组件构建良好,运行良好.这是设计师遇到的问题.

因此,我们必须通过手动调整Designer.cs文件来完成所有设计工作.如何让设计师再次工作?

c# custom-controls windows-forms-designer winforms

10
推荐指数
3
解决办法
6934
查看次数

如何在c#中正确使用SortedDictionary?

我想做一些非常简单的事情,但似乎我不明白SortedDictionary.

我要做的是以下内容:
创建一个排序字典,按一些浮点数对我的项目进行排序,因此我创建了一个类似于此的字典

SortedDictionary<float, Node<T>> allNodes = new SortedDictionary<float, Node<T>>();
Run Code Online (Sandbox Code Playgroud)

现在我添加项目后,我想逐个删除它们(每次删除都应该从最小到最大的复杂度为O(log(n)).

我该怎么做?我认为这只allNodes[0]会给我最小的,但事实并非如此.

更重要的是,似乎字典无法处理重复的键.我觉得我使用的是错误的数据结构......
如果我有一堆节点需要按照它们的距离(浮点)进行排序,我应该使用其他东西吗?

c# dictionary sorted sorteddictionary

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

从Load处理程序关闭表单

我有一种非常奇怪的行为,似乎只在一种形式上发生.

基本上我正在创建一个实例Form,并调用Show()以显示非阻塞形式.在那个表单的Load事件处理程序中,我有一些可以this.Close()在某些情况下调用的逻辑.这会关闭表单,但是Show()客户端代码中的表单方法会抛出一个ObjectDisposedException.

ObjectDisposedException的堆栈跟踪如下:

在System.Windows.Forms.Control.CreateHandle()
在System.Windows.Forms.Form.CreateHandle()
在System.Windows.Forms.Control.get_Handle()
在System.Windows.Forms.ContainerControl.FocusActiveControlInternal()
在系统.Windows.Forms.Form.SetVisibleCore(布尔值)
在System.Windows.Forms.Control.Show()
...等.

这就是我所看到的:

  1. Control.Show() 叫做
  2. 我的表格已经发布
  3. OnFormLoad方法被调用
  4. FormLoad事件处理程序被调用,这里面我打电话this.Close()
  5. OnFormClosing方法被调用
  6. FormClosing事件处理程序被调用
  7. Dispose 在我的表单和所有用户控件上调用

然后在Control.Show()方法结束的某个地方,它会尝试获取表单的句柄,这会因为对象被标记为处置而变形并抛出异常.

我真正的问题是,为什么我可以在没有例外的其他形式上完成同样的事情?这是GC问题吗?我尝试过GC.Collect()之后立即拨打电话this.Close()并没有任何区别.就像我说的那样,无论子用户控件,表单变量的范围等等,它都会在此表单上100%的时间内发生,而且绝不会在其他任何地方发生.

有任何想法吗?

c# objectdisposedexception winforms

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

NSDateFormatter dateFromString返回nil

我有以下代码:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
    /*2010-11-02 20:31:39*/
[df setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
NSDate* date = [df dateFromString:@"2010-11-02 20:31:39"];
Run Code Online (Sandbox Code Playgroud)

datenil.

知道为什么吗?

cocoa nsdateformatter ios

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

为什么Windows将新创建的文件的"创建时间"属性设置为旧时间?

试着这个我发现了一个奇怪的问题:

  1. 删除旧文件.
  2. 创建一个新文件,并将其命名为旧文件.

然后将新文件的"创建时间"属性设置为旧文件的"创建时间".为什么会这样?如何?

windows filesystems

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

从鼠标位置获取DataGrid单元格

我想DataGridMouseDown活动中获取 a 的点击单元格。到目前为止我还没有成功。
我试过

  • dg.CurrentCell- 包含先前单击的单元格

  • dg.GetChildAt(...)- 不起作用,因为单元格未列为 DataGrid 的子级

.net vb.net datagrid winforms

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

在不使用DBCC的情况下确定每个SQL表的页数

我试图压缩我的数据库中最大的表.我将通过运行SP_ForEachDB存储过程来完成此操作.但是我无法弄清楚如何查看总页数.我可以通过此查询获取行数...

USE DEVELOP04_HiltonUS

GO

SELECT 
    [TableName] = so.name, 
    [RowCount] = MAX(si.rows) 
FROM 
    sysobjects so, 
    sysindexes si 
WHERE 
    so.xtype = 'U' 
    AND 
    si.id = OBJECT_ID(so.name) 
GROUP BY 
    so.name 
ORDER BY 
    2 DESC
Run Code Online (Sandbox Code Playgroud)

哪个回报:

            TABLE NAME   ROW COUNT
           PlannedShift  38268660
        BudgetStaffStat  19353104
          BudgetKBIStat  14142631
EmployeeShiftAdjustment  13493745
            Requirement  11020921
     EmployeeShiftError  6857235
      JobclassLaborData  5638692
Run Code Online (Sandbox Code Playgroud)

等我所有的桌子.

我正在寻找相同的东西,但返回页面计数.

sql sql-server-2008

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

如何锁定剪贴板?

我想知道是否有办法从 C# 锁定和解锁剪贴板。基本上,我会在里面写一些东西,我不希望其他人在我拿起我的东西之前写信。

我怎样才能做到这一点?

c# clipboard

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

调用Dispose()后程序挂起

我正在使用C#开发iOS项目.该程序从连接的网络摄像头捕获图像,并通过Socket发送到iPhone/iPad.这一切都很好,我可以成功地让我的流出现在设备上.

但是当客户端断开连接时,网络摄像头必须关闭,在此功能中,程序才会挂断.没有错误消息和没有异常调用......只是挂起!我相信这是多线程的问题但不幸的是我没有在C#中找到解决方案的经验.我希望有人能带我走上正轨......

代码:
onImageCaptured函数:

public void OnImageCaptured(Touchless.Vision.Contracts.IFrameSource frameSource, Touchless.Vision.Contracts.Frame frame, double fps)
{
    _latestFrame = frame.Image;
    Console.WriteLine("OnImageCaptured");
    if (isConnected)
    {
        Console.WriteLine("OnImageCaptured - isConnected");
        byteArray = new byte[0];
        MemoryStream stream = new MemoryStream();

        _latestFrame.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
        stream.Close();
        byteArray = stream.ToArray();

        if (byteArray.Length > 0)
        {
            string eof = "<EOF>";
            byte[] eofByte = Encoding.ASCII.GetBytes(eof);
            Console.WriteLine("OnImageCaptured - sendStream");
            this.onDataSend(byteArray);
            this.onDataSend(eofByte);
            stream.Flush();
        }

        System.Diagnostics.Debugger.Log(0, "1", "\nByte Array Length: " + byteArray.Length.ToString());
    }
    pictureBoxDisplay.Invalidate();
}
Run Code Online (Sandbox Code Playgroud)

在Camera Class中定义如下:

public event EventHandler<CameraEventArgs> OnImageCaptured;
Run Code Online (Sandbox Code Playgroud)

并触发:

OnImageCaptured.Invoke(this, new CameraEventArgs(bitmap, fps)); …
Run Code Online (Sandbox Code Playgroud)

c# sockets webcam multithreading dispose

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

在HashMap中多次使用键时无限循环

HashMap 陷入无限循环.

我无法理解为什么HashMap在多次使用相同的密钥时抛出stackoverflow错误.

码:

import java.util.HashMap;

public class Test {
    public static void main(String[] args) {
        HashMap hm = new HashMap();

        hm.put(hm, "1");
        hm.put(hm, "2");
    }
} 
Run Code Online (Sandbox Code Playgroud)

错误:

线程"main"java.lang.StackOverflowError中的异常

java stack-overflow hash hashmap

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