C#杂问
控件的输入法控制
控件的输入法控制 —Control. ImeMode 属性
获取或设置控件的输入法编辑器 (IME) 模式。
命名空间: System.Windows.Forms
程序集: System.Windows.Forms
IME 是一个程序,它使用户能够通过使用标准键盘输入复杂字符和符号,如日语汉字字符。对于仅用于输入数值的 TextBox 控件, ImeMode 属性通常设置为 ImeMode..::.Off 。对于 Form 类, ImeMode 属性值设置为 ImeMode..::.NoControl 。
不直接支持输入方法编辑器或允许从 IME 直接输入的大多数类将此属性的值设置为 NoControl 。
重要说明:
除非 ImeMode 已经以编程方式设置为 ImeMode..::.Disable ,否则用户能够以交互方式更改它。在前一种情况下,用户将无法使用 IME 。
C#的编码
NET 中内存中的字符串都是Unicode ,而asp.net 程序默认是 UTF-8 编码 ,我们在使用某些字符串时出现了乱码,我们首先要判断是不是我们解释用的编码方式出错了。
Unicode编码有多种编码方式,如UTF-8,UTF-16,gbk等
学习API的最佳方式
直接查看 NET 类的源码,在 vitual studio 下,有非常详细的接口说明。
NET framework 命名
以 I+ 表示接口 , 如 IDictionary , ICollection 。
访问容器的两种常见用法
IDictionary<string, string> treeMap = new SortedList<string, string>();
foreach(KeyValuePair<string, string> kvp in @params) { //1 foreach
treeMap.Add(kvp.Key,kvp.Value);
}
System.Collections.IEnumerator iter = @treeMap.Keys.GetEnumerator();
while (iter.MoveNext()) //2 迭代器。初值位于集合中第一个元素之前
{
}
串化
String 只能操作 string 对象,当然可以用 ToString 来实现任意串化。 System.Text.StringBuilder 继承自 ISerializable ,提供更为强大的串化功能。
编码与解码
System.Text 的 Encoding 和 提供了常用的编解码功能。调用非常简单,示例:
Encoding.UTF8.GetBytes(str). // 使用 UTF8 编码,并获取编码后的 Byte(8 位无符号字符 )
Encoding.Unicode. GetChars (str). // 使用 Unicode 编码,并获取编码后的 Unicode 字符
Encoding.Unicode. GetString (str). // 使用 Unicode 编码,并获取编码后的 Unicode 字符
XML 解析
XmlNode 中常有属性:
InnerText ---- 节点及其所有子节点的串联值
Value ---- 节点的值
InnerXml ---- 该节点的子节点的标记
示例:
XmlDocument xd = new XmlDocument();
xd.LoadXml(xml);
XmlNodeList nodeList = xd.GetElementsByTagName("user");
foreach (XmlNode node in nodeList)
{
string user = node.SelectSingleNode("nick").InnerText;
string visit_time = node.SelectSingleNode("last_visit").InnerText;
}
XmlElement 继承自 XmlNode ,提供对节点属性值更便捷的访问接口。
示例:
XmlElement userNode = (XmlElement)doc.GetElementsByTagName("user")[0];
string uri = userNode.GetAttribute("uri");
urserId = userNode.GetAttribute("user-id");
string 和内置类型的互转
Int.ToString() -> int à string
Int.Parse() -> string à int
C# 怎样给生成的可执行文件( .EXE )修改图标?
在解决方案中,点你的项目,有个属性,属性页里面有个“ 应用程序图标“, 然后选择你想要的就可以了,在重新生成后,你就可以看到了
C# 中打开网页
System.Diagnostics.Process.Start(“http://oil.spaces.live.com/ ”);
Frame 显示元素的控制
this.Controls.Clear();
this.Controls.Add(this.dataGridView1);
注:只有 add 到 controls 中的元素会被显示。
winform 如何固定大小
设置 FormBorderStyle 属性,
this.FormBorderStyle = system.Windows.Forms.FormBorderStyle.FixedSingle
中文输入
如果不能在控件属性中输入中文, 1) 确认已切换到中文输入; 2) 先尝试在源码文件中输入中文。