小编Ant*_*nov的帖子

C#中的命名空间冲突

System程序命名空间中有一个命名空间.结果我无法System从我的内部看到标准命名空间.我该如何解决这个问题?

在此输入图像描述

例如,在C++中,有一个::运算符将我"移出"我的命名空间,因此我可以看到与我当前命名空间同名的外部命名空间:

在此输入图像描述

C#中是否有类似的运算符?

c# namespaces

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

航空玻璃窗上的非客户端绘画

现在我定制我的应用程序的标题栏.我的目标是在标题栏上添加一个额外的按钮.我以前的问题 人们告诉我我可以自定义非客户区的方式.这是完美的,除了一件小事 - 发光!我可以在非客户区域绘制发光,但我无法将其扩散到窗外.我也找不到关于这个subj的任何资源.

我查看了这个示例并制作了自己的测试应用程序,用于调查非客户端绘图工具.我的应用程序窗口的屏幕截图:

我的应用程序的窗口

因此,当我被边框框剪裁时,您可以看到系统按钮从窗口发出光芒.

例如,Skype的窗口在标题栏中有四个自定义按钮,它们可以从窗口框架中"发光":

Skype的窗口

任何人都可以建议我找出从窗口画出按钮发光的方法吗?
提前致谢!

[编辑]
谢谢大家的答案!

c# c++ user-interface nonclient aero

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

像LINQ to Objects中的运算符一样

我试图LIKE在LINQ to Objects中模拟运算符.这是我的代码:

List<string> list = new List<string>();
list.Add("line one");
list.Add("line two");
list.Add("line three");
list.Add("line four");
list.Add("line five");
list.Add("line six");
list.Add("line seven");
list.Add("line eight");
list.Add("line nine");
list.Add("line ten");

string pattern = "%ine%e";

var res = from i in list
            where System.Data.Linq.SqlClient.SqlMethods.Like(i, pattern)
              select i;
Run Code Online (Sandbox Code Playgroud)

它没有得到我的结果,因为System.Data.Linq.SqlClient.SqlMethods.Like它只是为了翻译成SQL.

LIKE在LINQ to Objects世界中是否存在类似于sql 运算符的东西?

c# linq-to-objects sql-like

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

C++回调到C#函数期间的NullReferenceException

开发商!
我有一个非常奇怪的问题.我的项目有用C++编写的DLL和用C#编写的GUI.我已经实现了一些互操作性的回调.我计划在某些情况下C++ dll会调用C#代码.它有效...但不长,我不明白为什么.在C#部分注释中标记的问题
这里是简化示例的完整代码:

C++ DLL:

#include <SDKDDKVer.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>

BOOL APIENTRY DllMain( HMODULE hModule,
                    DWORD  ul_reason_for_call,
                    LPVOID lpReserved
                                    )
    {
    switch (ul_reason_for_call)
    {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}

extern "C" 
{    
    typedef void  (*WriteSymbolCallback) (char Symbol); 
    WriteSymbolCallback Test;

    _declspec(dllexport) void InitializeLib()
    {
        Test = NULL;
    }

    _declspec(dllexport) void SetDelegate(WriteSymbolCallback Callback)
    {
        Test = Callback;
    }

    _declspec(dllexport) void TestCall(const char* Text,int Length)
    {
        if(Test != NULL)
        {
            for(int i=0;i<Length;i++)
            { …
Run Code Online (Sandbox Code Playgroud)

c# c++ callback marshalling nullreferenceexception

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

如何在窗口标题栏中添加一个额外的按钮,这样它将作为标准工作?

首先,我想提一下,我已经阅读过关于主题的所有文章,但仍然没有回答我的问题.我的问题也与其他人略有不同.
今天我来看一下Skype窗口.标题栏上有一个额外的按钮.但是此按钮充当本机系统按钮.只要看着发光,就会从窗户传播开来.所以我有一个合理的问题.根据我们可以在下面的图片中看到,有标准方法在标题栏上添加额外的按钮.但是subj上的所有答案都会导致WM_NCPAINT事件挂钩和额外按钮的手动绘制.这种方法很有效,但它无法像图片那样产生如此美丽的光芒.
有人知道在窗口标题栏上添加标准化按钮的方法吗?提前致谢!
在此输入图像描述

c# c++ windows user-interface winapi

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

C++中虚拟表的结构是什么?


例如,我有两个"接口"和类类型:

class IPlugin
{
  public:
    virtual void Load(void) = 0;
    virtual void Free(void) = 0;
};

class IFoo
{
  public:
    virtual void Foo(void) = 0;
};


class Tester: public IPlugin, public IFoo
{
   public:
           Tester() {};
          ~Tester() {};

           virtual void Load()
           {
              // Some code here
           }

           virtual void Free()
           {
              // Some code here
           }

           virtual void Foo(void)
           {
              // Some code here
           }
 };
Run Code Online (Sandbox Code Playgroud)

vtab实际上具有哪种结构类型Tester?而如何将 dynamic_cast运营商的行为(我的意思是如何dynamic_cast操作员将扫描vtab为有效的引用类型皈依)的表达式:

Tester* t = new Tester();
IPlugin* plg …
Run Code Online (Sandbox Code Playgroud)

c++ vtable

7
推荐指数
3
解决办法
8196
查看次数

TreeView中不可选择的节点

我在winform上有TreeView控件.我希望让几个节点无法选择.我怎么能得到这个.
在我看来只有一个想法 - 自定义绘制节点,但可能更容易存在?请指教

我已经在BeforeSelect事件处理程序中尝试了这样的代码:

private void treeViewServers_BeforeSelect(object sender, TreeViewCancelEventArgs e)
{
  if (e.Node.Parent != null)
  {
    e.Cancel = true;
  }
}
Run Code Online (Sandbox Code Playgroud)

但它获得的效果是不合适的.当我按住鼠标左键时,节点临时获取选择.

提前致谢!

c# treeview winforms

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

是否可以获取和修改文本框的标准系统上下文菜单?

我有一个带文本框的简单winform应用程序.
我没有为文本字段分配任何上下文菜单,"它使用"标准字段.我希望在文本框的标准上下文菜单中添加一些新项目.但我无法获得它进行修改,如果更清楚我不知道如何获得HMENU本机对象.
ContextMenu我的文本框的属性等于null所以我认为菜单在文本框中默认为windProc路由.有没有办法获取默认的上下文菜单或获取它的副本?

提前致谢!

c# winapi winforms

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

是否可以在我的应用程序中添加数据源连接向导?

数据源连接向导是非常方便的工具.我可以将它添加到我的应用程序中以允许用户以简单的方式选择自己的数据源吗?

.net c# database connection-string

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

将C语言结构编组为C#中的返回值

我有非托管代码:

...
typedef struct foo  
{  
 int  a;  
 bool b
 int  c;  
} FOO,*LPFOO;
....
__declspec(dllexport) FOO __stdcall GetFoo()  
{  
   FOO f;  
   <some work>  
   return f;   
}  
....
Run Code Online (Sandbox Code Playgroud)

我已经为GetFoo函数声明了C#原型:

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    private struct Foo
    {
      public int  a;  
      public bool b
      public int  c; 
    };

    [DllImport("foo.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    [return:MarshalAs( UnmanagedType.Struct)]        
    private static extern Foo GetFoo();
Run Code Online (Sandbox Code Playgroud)

但是当我从C#代码调用GetFoo时,我总是有MarshalDirectiveException- Method的类型签名不兼容PInvoke.我该如何申报C#原型?

c# unmanaged managed marshalling

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

如何在winform上以丰富的格式绘制字符串?

我需要在Windows窗体上以丰富的格式编写一行文本.我怎么能得到这个?

.net c# drawstring richtext winforms

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

C#将字符串数据表示转换为键入

现在我正在编写一个从XML加载配置数据的通用方法.我案例中的很多参数都存储在节点属性中,所以我决定编写一个通用的属性读取方法:

    private static T ReadAttribute<T>(XElement Element,string AttributeName)
    {
        var attrib = Element.Attribute(AttributeName);

        if (attrib != null)
        {
            return attrib.Value; // off cource error is in this line !
        }
        else
        {
            return default(T);
        }
    }
Run Code Online (Sandbox Code Playgroud)

此方法应尝试读取具有指定名称的属性,如果此属性错过,则应返回属性类型的默认值.属性类型由T指定.如上面的注释所示,我的问题是我无法将字符串值普遍转换为特定类型.实际上我计划使用int,double和两个enum类型作为T.
我应该在这种情况下采取什么行动?我应该如何将字符串值转换为T类型?
提前致谢!

c# type-conversion

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