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

我所有的一切都是

我刚刚下载了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) 我正在尝试使用在Windows 8中加载驱动程序NtLoadDriver。我要返回此函数- 0xC0000061(NTSTATUS值)。这意味着:特权未持有。我创建了注册表项并设置了所有值。我也以管理员身份运行它。怎样解决此类问题?
我有.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次运行)
我会尝试解释我的问题.
我有一节课:
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中,我Person在ListView控件中呈现类的所有元素,并且当选择元素时,我在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) 我不能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) 这是如何从十进制转换为二进制:
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) 我有TreeView对象,我需要一个时node的treeview选择,form显示在一定的位置(的特性node),以及另一个时node被选择时,form改变.当没有选择节点时,form消失.Form仅包含ListView对象.我需要像visual studio中的属性窗口.
我现在遇到的问题:
Form随机出现,在错误的位置,我需要它显示在另一个的确定位置form.
每次鼠标按下事件后,出现一个新的form,但我需要只有一个form(或旧的消失 - 新出现)
如果未选择任何节点,form则不会消失.
我该如何解决这个问题,或者有更好的解决方案?
我有一个功能:
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];,永远不会删除它.我该如何处理内存泄漏?我该如何释放记忆?
我想将一个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,即使它离开函数的范围,如何保持初始化?
.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)