正如标题所述,我正在寻找一种方法来控制物品停靠在我控制之上的顺序.
我和Windows窗体设计师一起玩过,我似乎无法找到RightClick->Order->SendToFront正在做的事情,因为这正是我想要发生的事情.至于我可以发生的事情,当我将我的内容添加到我的控件中时,最新的内容始终位于顶部,我希望新的内容位于底部,最旧的内容位于最佳.
简介:在WinForms(C#)中有一种简单的方法来控制事物停靠在控件两侧的顺序吗?
编辑:我必须从后面的代码执行此操作,因为我添加我的控件,我不能使用WinForm的设计器的任何功能,但我想要做的,是模仿WinForms设计器SendToBack和SendToFront功能
我有一个需要解析的大字符串,我需要查找所有实例extract"(me,i-have lots. of]punctuation,并将每个的索引存储到列表中.
所以说这条字符串位于较大字符串的开头和中间,它们都会被找到,并且它们的索引会被添加到字符串中List.而List将包含0与其他指数不管它是.
我一直在玩弄和string.IndexOf做几乎就是我正在寻找的,我已经写了一些代码-但它不工作,我一直无法弄清楚到底什么是错的:
List<int> inst = new List<int>();
int index = 0;
while (index < source.LastIndexOf("extract\"(me,i-have lots. of]punctuation", 0) + 39)
{
int src = source.IndexOf("extract\"(me,i-have lots. of]punctuation", index);
inst.Add(src);
index = src + 40;
}
Run Code Online (Sandbox Code Playgroud)
inst =清单source =大字符串有更好的想法吗?
这是我到目前为止:
Dim bProcess = Process.GetProcessesByName("By").FirstOrDefault
If bProcess IsNot Nothing Then
SwitchToThisWindow(bProcess.MainWindowHandle, True)
Else
Process.Start("C:\Program Files\B\B.exe")
End If
Run Code Online (Sandbox Code Playgroud)
它有两个问题.
那么这样做的正确方法是什么?
我有一个数据库对象(一行),它有许多映射到表单字段的属性(列)(asp:textbox,asp:dropdownlist等).我想将此对象和属性转换为字典映射,以便更容易迭代.
例:
Dictionary<string, string> FD = new Dictionary<string,string>();
FD["name"] = data.name;
FD["age"] = data.age;
FD["occupation"] = data.occupation;
FD["email"] = data.email;
..........
Run Code Online (Sandbox Code Playgroud)
如果不手动输入所有100种属性,我怎么能这么做呢?
注意:FD字典索引与数据库列名称相同.
我想知道如何比较两个盒装整数(可以是有符号或无符号)以保证相等.
例如,看看这个场景:
// case #1
object int1 = (int)50505;
object int2 = (int)50505;
bool success12 = int1.Equals(int2); // this is true. (pass)
// case #2
int int3 = (int)50505;
ushort int4 = (ushort)50505;
bool success34 = int3.Equals(int4); // this is also true. (pass)
// case #3
object int5 = (int)50505;
object int6 = (ushort)50505;
bool success56 = int5.Equals(int6); // this is false. (fail)
Run Code Online (Sandbox Code Playgroud)
我很难理解如何以这种方式可靠地比较盒装整数类型.直到运行时我才会知道它们是什么,我不能把它们都放到long,因为一个可能是一个ulong.我也不能将它们都转换成两者,ulong因为一个可能是负面的.
我能想到的最好的想法就是试错,直到找到一个普通类型或者可以排除它们不相等,这不是一个理想的解决方案.
我的应用程序在.NET 4.7中运行.默认情况下,它将尝试使用TLS1.2.是否有可能知道在执行时协商了哪个TLS版本,例如,如下所示的HTTP请求?
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(decodedUri);
if (requestPayload.Length > 0)
{
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(requestPayload, 0, requestPayload.Length);
}
}
Run Code Online (Sandbox Code Playgroud)
我只需要这些信息用于记录/调试,因此在写入请求流或接收响应之前获取此信息并不重要.我不希望解析此信息的网络跟踪日志,我也不想创建第二个连接(使用SslStream或类似的连接).
我想知道是否可以编译,并运行存储的代码,而不生成exe或任何类型的其他文件,基本上从内存中运行该文件.
基本上,Main应用程序将有一些存储代码(可能会更改的代码),并且需要编译代码并执行它.没有创建任何文件.
创建文件,运行程序,然后删除文件不是一个选项.编译后的代码需要从内存中运行.
代码示例,或指针,或几乎任何东西都欢迎:)
我正在扩展我的Inno-Setup脚本,其中包含我最好在托管DLL中的C#中实现的代码.我已经知道如何从托管DLL导出方法作为在非托管进程中使用的函数.它可以通过IL编织来完成,并且有一些工具可以实现自动化:
因此,在导出后,我可以在Inno-Setup安装程序中从Pascal脚本调用我的函数.但是有一个问题:DLL似乎不再被卸载了.使用Inno-Setup UnloadDLL(...)无效,文件将保持锁定状态,直到安装程序退出.因此,安装程序等待2秒,然后无法从临时目录(或安装目录)中删除我的DLL文件.事实上,它确实存在,直到有人清理驱动器.
我知道无法再从AppDomain卸载托管程序集,除非整个AppDomain关闭(进程退出).但是对于非托管主机进程意味着什么呢?
是否有更好的方法允许Inno-Setup在加载和使用后卸载或删除我的DLL文件?
我喜欢在C#中编写扩展方法的方式,然后执行以下操作:
string ourString = "hello";
ourString.MyExtension("another");
Run Code Online (Sandbox Code Playgroud)
甚至
"hello".MyExtention("another");
Run Code Online (Sandbox Code Playgroud)
有没有办法在PHP中有类似的行为?
我的朋友和我正在编写一个IRC C#bot,我们正在寻找一种包含模块系统的方法,以便用户可以编写自定义模块来扩展功能.
机器人使用Regex从服务器中分离所有原始数据,然后使用数据触发相应的事件.例如,典型的事件处理程序可能如下所示:
OnChannelMessage(object sender, ChannelMessageEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
In ChannelMessageEventArgs将是频道名称,发送者的昵称,消息等...
我想拥有一个插件系统,以便人们可以随意构建模块并加载/卸载它们,当机器人加载时,或者运行时.
理想情况下,我希望能够动态编译.cs文件,并在plugin.cs文件中,将是一些事情:
感谢您对于在编程方面相对较新的人的起点.