'VB
Protected Overrides Sub OnParentChanged(ByVal e As EventArgs)
MyBase.OnParentChanged(e)
Me.BackColor = Parent.BackColor
End Sub 'OnParentChanged
5.28. 为什么NumericUpDown控件能接受decimal类型的值,但不会显示大于2^16的值?
虽然NumericUpDown控件接受decimal类型的值,但.net精简框架把这个控件的值当作int类型来处理。如,10.23当作10。同样此控件在PocketPC上不接受大于带符号的16位整型。
5.29. 为什么不能在DomainUpDown 中输入文字,而要选择?
DomainUpDown控件不会对输入的文字进行确认(不象完整的.net框架)。如果您先输入了一些文字,再按上、下箭头,它会显示内容改变前的值的下一个值。
5.30. 为什么OpenFileDialog被限制在"My Documents" 文件夹中?
OpenFileDialog的初始化目录被限制在"My Documents"文件夹或它的子文件夹中。这个限制是由PocketPC系统强加的,为了帮助用户在标准目录下管理自己的文档。
5.31. How can I activate the SIP (InputPanel) without a menu?
The SIP can be activated by P/Invoking the function "SipShowIM" as follows. //C#
using System.Runtime.InteropServices;
const uint SIPF_OFF = 0x0;
const uint SIPF_ON = 0x1;
[DllImport("coredll.dll")]
private extern static void SipShowIM(uint dwFlag);
'VB
Imports System.Runtime.InteropServices
Const SIPF_OFF As Integer = &H0
Const SIPF_ON As Integer = &H1
<DllImport("coredll.dll")> _
Private Shared Function SipShowIM(ByVal dwFlag As Integer) As Integer
End Function
5.32. How do I add a subnode to every node in a TreeView?
Adding subnodes to all nodes is accomplished by iterating through all of the nodes in the TreeView and adding a new node to each.
//C#
foreach (TreeNode node in treeView1.Nodes)
{
node.Nodes.Add(new TreeNode("SubNode"));
}
'VB
Dim node As TreeNode
For Each node In treeView1.Nodes
node.Nodes.Add(New TreeNode("SubNode"))
Next node
5.33. How do I determine the number of rows or columns in a DataGrid?
The number of rows and columns in a DataGrid can be determined from the data source itself. For example:
//C#
DataSet ds = new DataSet();
int numRows = ds.Tables[0].Rows.Count;
int numCols = ds.Tables[0].Columns.Count;
'VB
Dim ds As New DataSet()
Dim numRows As Integer = ds.Tables(0).Rows.Count
Dim numCols As Integer = ds.Tables(0).Columns.Count
If the DataGrid is bound to the DataView you can also use DataView.Count.
5.34. How do I create a owner drawn Listbox?
See the .NET Compact Framework QuickStarts, Implementing Events topic:
http://samples.gotdotnet.com/quickstart/compactframework/doc/btndclick.aspx
5.35. How can I implement Control.GetNextControl under the .NET Compact Framework?
The tab order of the controls in the .NET Compact Framework correspond directly to the order of the Controls in the Form.Controls collection. Therefore, GetNextControl can be implemented by determining the index of the specified Control and determing its neighbors in the collection. //C#
public Control GetNextControl(Control ctl, bool forward)
{
int curIndex = this.Controls.IndexOf(ctl);
if (forward)
{
if (curIndex < this.Controls.Count)
curIndex++;
else
curIndex = 0;
}
else
{
if (curIndex > 0)
curIndex--;
else
curIndex = this.Controls.Count - 1;
}
return this.Controls[curIndex];
}