小编Rom*_*omz的帖子

如何在TreeView中突出显示节点?不仅是文本区域,而且是所有行

TreeNode.Select()不起作用.我希望它突出显示为

PIC1



我所有的一切都是

PIC2

.net c# winforms

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

如何填充 BrightIdeasSoftware.TreeListView ?

我刚刚下载了ObjectListView,但在填充它时遇到了问题。

我得到的清单MyObject

public class MyObject
{
  public int Id { get; set; }
  public int ParentId { get; set; }
  public string Name { get; set; }

  public int Data { get; set; }

  public MyObject(int id, int parentId, string name, int data)
  {
     Id = id;
     ParentId = parentId;
     Name = name;
     Data = data;
  } 
}

List<MyObject> list = List<MyObject>();
Run Code Online (Sandbox Code Playgroud)

我需要用TreeListView元素填充 a MyObject使用 TreeListView)。我还需要一栏填写.Data财产。我无法将其填充为list(同一级别上的所有项目)并且没有任何列,我尝试过以下操作:

this.myTreeListView.SetObjects(list); …
Run Code Online (Sandbox Code Playgroud)

.net c# treeview listview objectlistview

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

Windows 8中的NtLoadDriver-不保留特权

我正在尝试使用在Windows 8中加载驱动程序NtLoadDriver。我要返回此函数- 0xC0000061(NTSTATUS值)。这意味着:特权未持有。我创建了注册表项并设置了所有值。我也以管理员身份运行它。怎样解决此类问题?

c++ winapi windows-8

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

OleDbCommand.ExecuteNonQuery()不保存ms访问数据库中的更改

我有.mdb数据库,代码如下:

using (OleDbConnection connection = new OleDbConnection(myConnectionString))
{
    using (OleDbCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = "UPDATE myTab SET col2 = @val1 WHERE col1 = @val2";
        cmd.Parameters.AddWithValue("@val1", 0);
        cmd.Parameters.AddWithValue("@val2", -1);
        cmd.Connection.Open();
        cmd.ExecuteNonQuery();
        cmd.Connection.Close();
     }
}
Run Code Online (Sandbox Code Playgroud)

我从db获取数据,在我的gui程序中更改它,然后将其保存在db中.更改保存,但不在db(我不知道在哪里),所以当我运行程序,更改数据,关闭程序,然后再次运行 - 更改仍然存在,但是当我打开db(不在programm中)时,没有更改保存,再次运行 - 所有更改都消失了.
PS:当我提交更改,然后运行程序几次,所有更改也消失,(3-4次运行)

.net c#

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

BindingSource到ComboBox和[Browsable(false)]属性到PropertyGrid不能一起工作

我会尝试解释我的问题.

我有一节课:

public class Person()
{
        [Browsable(false)]
        public Int32 Id { get; set; }

        public string Name { get; set; }

        //...
}
Run Code Online (Sandbox Code Playgroud)

我使用PropertyGridcontrol来显示Name字段,但我不需要显示Id,所以我将Browsable属性设置为false,如下所示:

[Browsable(false)]
public Int32 Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的GUI中,我PersonListView控件中呈现类的所有元素,并且当选择元素时,我在PropertyGrid控件中显示属性,如下所示:

void ListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   this.propertyGrid.SelectedObject = (object)this.listView.SelectedObject;
}
Run Code Online (Sandbox Code Playgroud)

一切正常,PropertyGrid只显示字段Name.

然后我需要使用这样的ComboBox控件:

List<Person> people = new List<Person>();
people.Add(...)
//.....

this.comboBox.DataSource = new BindingSource(people, null);
this.comboBox.ValueMember = "Id"; …
Run Code Online (Sandbox Code Playgroud)

.net c# propertygrid combobox winforms

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

如何在ring0(内核模式)中使用winapi函数?

我不能FileTimeToSystemTime()在驱动程序中调用方法.错误是:

错误C4013:'FileTimeToSystemTime'未定义; 假设extern返回int.

另外我不能包含windows.h因为我已经包含ntddk.h,它会导致很多错误.如果我BOOL FileTimeToSystemTime(IN const PFILETIME, OUT PSYSTEMTIME);在标题中声明它我会得到下一个错误:

错误C2061:语法错误:标识符'FileTimeToSystemTime'

错误C2059:语法错误:';'

错误C2059:语法错误:'type'

错误C4013:'FileTimeToSystemTime'未定义; 假设extern返回int

最后,如果我为此方法编写实现:

BOOL FileTimeToSystemTime(const PFILETIME pFileTime, PSYSTEMTIME pSystemTime)
{
    CALL_ENTRY
    long long tmp;
    memcpy(&tmp, pFileTime, sizeof (FILETIME));
    time_t aTime_t = tmp / 10000;
    tm aTm;

    if (!gmtime_r(&aTime_t, &aTm ))
        return FALSE;

    pSystemTime->wYear = aTm.tm_year + 1900;
    pSystemTime->wMonth = aTm.tm_mon;
    pSystemTime->wDayOfWeek = aTm.tm_wday;
    pSystemTime->wDay = aTm.tm_mday;
    pSystemTime->wHour = aTm.tm_hour;
    pSystemTime->wMinute = aTm.tm_min;
    pSystemTime->wSecond = aTm.tm_sec;
    pSystemTime->wMilliseconds = 0;

    return …
Run Code Online (Sandbox Code Playgroud)

c windows kernel driver

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

C#中的二进制到十进制转换

这是如何从十进制转换为二进制:

int dec = 42;
string bin = Convert.ToString(dec, 2);
Run Code Online (Sandbox Code Playgroud)

如果有的话,如何将二进制转换为十进制

string bin = "0100101"
int dec = ???
Run Code Online (Sandbox Code Playgroud)

.net c#

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

如何在visual studio中制作类似属性窗口的表单?

我有TreeView对象,我需要一个时nodetreeview选择,form显示在一定的位置(的特性node),以及另一个时node被选择时,form改变.当没有选择节点时,form消失.Form仅包含ListView对象.我需要像visual studio中的属性窗口.

我现在遇到的问题:

Form随机出现,在错误的位置,我需要它显示在另一个的确定位置form.

每次鼠标按下事件后,出现一个新的form,但我需要只有一个form(或旧的消失 - 新出现)

如果未选择任何节点,form则不会消失.

我该如何解决这个问题,或者有更好的解决方案?

c# winforms

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

在函数和内存泄漏中为返回值分配内存

我有一个功能:

char const* GetData() const 
{
      char* result = new char[32];
      sprintf(result, "My super string");

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

Adn然后在屏幕上显示这个字符串,如下所示:

std::cout << GetData() << std::endl;
Run Code Online (Sandbox Code Playgroud)

或者有一个班级:

class MyClass()
{
    char m_data[32]
public:
     MyClass(const char* data) { strcpy(m_data, data) } ;
}
Run Code Online (Sandbox Code Playgroud)

并创建一个对象的实例:

MyClass obj = new MyClass(GetData());
Run Code Online (Sandbox Code Playgroud)

我分配char* result = new char[32];,永远不会删除它.我该如何处理内存泄漏?我该如何释放记忆?

c++

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

在方法内初始化char指针

我想将一个char指针作为参数传递给这样的函数:

void foo(char* array_of_c_str[], const int size_of_array, char* result_ptr)
{
     // my logic

     result_ptr = a[n];
}
Run Code Online (Sandbox Code Playgroud)

并且这样打电话:

char* result_pointer = NULL;
foo(array_of_c_strings, 5, result_pointer);
printf("%s", result_pointer); // here result_pointer is always null
Run Code Online (Sandbox Code Playgroud)

我想初始化函数中的char指针,当调试一切正常时,但是当离开函数的范围时,这个指针再次变为null,即使它离开函数的范围,如何保持初始化?

c arrays pointers char

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

数组的StartWith方法

.NET中的数组是否有StartWith方法?或者LINQ中的类似内容?

var arr1 = { "A", "B, "C" }
var arr2 = { "A", "B, "C", "D" } 

var arr3 = { "A", "B, "CD" } 
var arr4 = { "E", "A, "B", "C" } 

arr2.StartWith(arr1) // true
arr1.StartWith(arr2) // false

arr3.StartWith(arr1) // false
arr4.StartWith(arr1) // false
Run Code Online (Sandbox Code Playgroud)

或者我应该直截了当地说:

bool StartWith(string[] arr1, string[] arr2)
{
     if (arr1.Count() < arr2.Count) return false;

     for (var i = 0; i < arr2.Count(), i++)
     {
        if (arr2[i] != arr1[i]) return false;
     }

     return true;
} …
Run Code Online (Sandbox Code Playgroud)

.net c# linq performance

0
推荐指数
3
解决办法
202
查看次数