none
问题 RRS feed

答案

  • 你好!
       问题还遍了号,呵呵!对了上次怎么没有加我的msn呀?实际上MSDN文档已经解释的很详细了:
    TreeView类:
    显示标记项的分层集合,每个标记项用一个 TreeNode 来表示

    Nodes 集合包含分配给 TreeView 控件的所有 TreeNode 对象。此集合中的树节点称作根树节点。随后添加到根树节点上的任何树节点称作子节点。由于每个 TreeNode 都可以包含其他 TreeNode 对象的集合,您可能会在循环访问集合时觉得很难确定自己在树结构中的位置。您可以使用 PathSeparator 字符串值来分析 TreeNode.FullPath 字符串,以确定 TreeNode 标签的起始和终止位置。

    若要显示树节点旁的图像,可以将一个 ImageList 对象分配给 ImageList 属性,然后通过引用 ImageImageList 中的索引值来分配该 Image。将 ImageIndex 属性设置为当树节点未选定时所显示的 Image 的索引值。同样,将 SelectedImageIndex 属性设置为当树节点选定时所显示的 Image 的索引值。ImageIndexSelectedImageIndex 属性值所引用的图像是所有分配给 Nodes 集合的树节点显示的默认图像。每个树节点都可以通过设置 TreeNode.ImageIndexTreeNode.SelectedImageIndex 属性来重写默认图像。

    树节点可以展开,以显示下一级子树节点。用户可以在 TreeNode 旁显示加号 (+) 按钮时通过单击加号 (+) 按钮来展开 TreeNode,或者可以通过调用 TreeNode.Expand 方法来展开 TreeNode。若要展开 Nodes 集合中的所有子树节点级别,请调用 ExpandAll 方法。若要折叠子 TreeNode 级别,可以调用 TreeNode.Collapse 方法,也可以在 TreeNode 旁显示减号 (-) 按钮时按减号 (-) 按钮。还可以通过调用 TreeNode.Toggle 方法在展开和折叠状态之间切换。

    树节点可以选择性地显示复选框。若要显示复选框,请将 TreeViewCheckBoxes 属性设置为 true。对于处于选中状态的树节点,Checked 属性设置为 true

    注意   从 BeforeCheckAfterCheck 事件内设置 TreeNode.Checked 属性将导致该事件被多次引发并可能产生意外行为。例如,您可以在递归更新子节点时在事件处理程序中设置 Checked 属性,以便用户不必逐个展开并选中每个节点。如果未将 TreeViewEventArgsAction 属性设置为 TreeViewAction.Unknown,则若要防止该事件被多次引发,需为仅执行递归代码的事件处理程序添加逻辑。有关如何进行此操作的示例,请参见 AfterCheckBeforeCheck 事件的示例部分。

    通过设置 TreeView 控件的一些显示和样式属性,可以更改此控件的外观。如果将 ShowPlusMinus 设置为 true,则会分别在每个可展开或折叠的 TreeNode 对象旁显示加号或减号按钮。如果将 ShowRootLines 属性设置为 trueTreeView 则会显示所有根树节点之间的连线。通过将 ShowLines 属性设置为 true,可以显示子树节点与其根节点之间的连线。如果将 HotTracking 属性设置为 true,那么当鼠标指针移过树节点标签时,树节点标签的外观将发生变化。如果启用热跟踪,树节点标签将具有超级链接的外观。

    注意   在运行时设置 CheckBoxesScrollableImageIndexSelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的外观。这将折叠除选定的 TreeNode 之外的所有树节点。

    // Create a new ArrayList to hold the Customer objects.
    private ArrayList customerArray = new ArrayList();

    private void FillMyTreeView()
    {
       // Add customers to the ArrayList of Customer objects.
       for(int x=0; x<1000; x++)
       {
          customerArray.Add(new Customer("Customer" + x.ToString()));
       }

       // Add orders to each Customer object in the ArrayList.
       foreach(Customer customer1 in customerArray)
       {
          for(int y=0; y<15; y++)
          {
             customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));   
          }
       }

       // Display a wait cursor while the TreeNodes are being created.
       Cursor.Current = new Cursor("MyWait.cur");
           
       // Suppress repainting the TreeView until all the objects have been created.
       treeView1.BeginUpdate();

       // Clear the TreeView each time the method is called.
       treeView1.Nodes.Clear();

       // Add a root TreeNode for each Customer object in the ArrayList.
       foreach(Customer customer2 in customerArray)
       {
          treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
             
          // Add a child treenode for each Order object in the current Customer object.
          foreach(Order order1 in customer2.CustomerOrders)
          {
             treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
               new TreeNode(customer2.CustomerName + "." + order1.OrderID));
          }
       }

       // Reset the cursor to the default for all controls.
       Cursor.Current = Cursors.Default;

       // Begin repainting the TreeView.
       treeView1.EndUpdate();
    }



    2008年10月19日 13:39
    版主

全部回复

  • 你好!
       问题还遍了号,呵呵!对了上次怎么没有加我的msn呀?实际上MSDN文档已经解释的很详细了:
    TreeView类:
    显示标记项的分层集合,每个标记项用一个 TreeNode 来表示

    Nodes 集合包含分配给 TreeView 控件的所有 TreeNode 对象。此集合中的树节点称作根树节点。随后添加到根树节点上的任何树节点称作子节点。由于每个 TreeNode 都可以包含其他 TreeNode 对象的集合,您可能会在循环访问集合时觉得很难确定自己在树结构中的位置。您可以使用 PathSeparator 字符串值来分析 TreeNode.FullPath 字符串,以确定 TreeNode 标签的起始和终止位置。

    若要显示树节点旁的图像,可以将一个 ImageList 对象分配给 ImageList 属性,然后通过引用 ImageImageList 中的索引值来分配该 Image。将 ImageIndex 属性设置为当树节点未选定时所显示的 Image 的索引值。同样,将 SelectedImageIndex 属性设置为当树节点选定时所显示的 Image 的索引值。ImageIndexSelectedImageIndex 属性值所引用的图像是所有分配给 Nodes 集合的树节点显示的默认图像。每个树节点都可以通过设置 TreeNode.ImageIndexTreeNode.SelectedImageIndex 属性来重写默认图像。

    树节点可以展开,以显示下一级子树节点。用户可以在 TreeNode 旁显示加号 (+) 按钮时通过单击加号 (+) 按钮来展开 TreeNode,或者可以通过调用 TreeNode.Expand 方法来展开 TreeNode。若要展开 Nodes 集合中的所有子树节点级别,请调用 ExpandAll 方法。若要折叠子 TreeNode 级别,可以调用 TreeNode.Collapse 方法,也可以在 TreeNode 旁显示减号 (-) 按钮时按减号 (-) 按钮。还可以通过调用 TreeNode.Toggle 方法在展开和折叠状态之间切换。

    树节点可以选择性地显示复选框。若要显示复选框,请将 TreeViewCheckBoxes 属性设置为 true。对于处于选中状态的树节点,Checked 属性设置为 true

    注意   从 BeforeCheckAfterCheck 事件内设置 TreeNode.Checked 属性将导致该事件被多次引发并可能产生意外行为。例如,您可以在递归更新子节点时在事件处理程序中设置 Checked 属性,以便用户不必逐个展开并选中每个节点。如果未将 TreeViewEventArgsAction 属性设置为 TreeViewAction.Unknown,则若要防止该事件被多次引发,需为仅执行递归代码的事件处理程序添加逻辑。有关如何进行此操作的示例,请参见 AfterCheckBeforeCheck 事件的示例部分。

    通过设置 TreeView 控件的一些显示和样式属性,可以更改此控件的外观。如果将 ShowPlusMinus 设置为 true,则会分别在每个可展开或折叠的 TreeNode 对象旁显示加号或减号按钮。如果将 ShowRootLines 属性设置为 trueTreeView 则会显示所有根树节点之间的连线。通过将 ShowLines 属性设置为 true,可以显示子树节点与其根节点之间的连线。如果将 HotTracking 属性设置为 true,那么当鼠标指针移过树节点标签时,树节点标签的外观将发生变化。如果启用热跟踪,树节点标签将具有超级链接的外观。

    注意   在运行时设置 CheckBoxesScrollableImageIndexSelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的外观。这将折叠除选定的 TreeNode 之外的所有树节点。

    // Create a new ArrayList to hold the Customer objects.
    private ArrayList customerArray = new ArrayList();

    private void FillMyTreeView()
    {
       // Add customers to the ArrayList of Customer objects.
       for(int x=0; x<1000; x++)
       {
          customerArray.Add(new Customer("Customer" + x.ToString()));
       }

       // Add orders to each Customer object in the ArrayList.
       foreach(Customer customer1 in customerArray)
       {
          for(int y=0; y<15; y++)
          {
             customer1.CustomerOrders.Add(new Order("Order" + y.ToString()));   
          }
       }

       // Display a wait cursor while the TreeNodes are being created.
       Cursor.Current = new Cursor("MyWait.cur");
           
       // Suppress repainting the TreeView until all the objects have been created.
       treeView1.BeginUpdate();

       // Clear the TreeView each time the method is called.
       treeView1.Nodes.Clear();

       // Add a root TreeNode for each Customer object in the ArrayList.
       foreach(Customer customer2 in customerArray)
       {
          treeView1.Nodes.Add(new TreeNode(customer2.CustomerName));
             
          // Add a child treenode for each Order object in the current Customer object.
          foreach(Order order1 in customer2.CustomerOrders)
          {
             treeView1.Nodes[customerArray.IndexOf(customer2)].Nodes.Add(
               new TreeNode(customer2.CustomerName + "." + order1.OrderID));
          }
       }

       // Reset the cursor to the default for all controls.
       Cursor.Current = Cursors.Default;

       // Begin repainting the TreeView.
       treeView1.EndUpdate();
    }



    2008年10月19日 13:39
    版主
  •  

    对不起了,我不知道怎么加你的MSN号啊!怎么加啊,你给我说说吧,呵呵,真的不好意思啊……谢谢啦!!!
    2008年10月20日 4:10
  • 不好意思啊,你帮我也看看问题2吧,那也是我不会的问题,谢谢啦!!!

    2008年10月20日 4:16
  • 你好!
       这样添加我的msn:
       点我帖子左面我的名字,我的个人资料中有,注意去掉不必要的后缀,正确的后缀是@live.cn   
       登陆你的msn,然后添加联系人(点上面那个带个加号的小人图标),然后写上我的msn号,在邀请信息上写上你是“风中客”,就可以了。
    2008年10月20日 4:26
    版主
  •  

    哎呀,我原来以为你说的是在msdn上的啊,原来还有msn啊,这个是做什么的啊?我今天刚申请了一个,我已经给你发了邀请,你看到的话就加我吧,我的 msn号的fengzhongke@live.cn,你看到的话就加我吧。谢谢啦啊,你今天又让我长了一点知识啊……呵呵
    2008年10月21日 6:37
  • 你好!
       我加了你的msn,但是请问你的机器上有没有Windows Live Messager这个软件呀?
    只有安装了这个聊天的软件我们才能聊天.
       到微软官方站点可以免费下载,安装,然后用你申请的帐户登陆,然后会看到我的邀请,然后你要允许,这样我们就能聊天了,呵呵!
       Windows Live Messager下载地址:
    http://im.live.cn/
    2008年10月21日 7:14
    版主
  • 感谢雪峰和风中客的互动,

    这是我们需要的成长环境,

    谢谢大家!

    2008年10月22日 10:03
  • 安装的太慢了,我们在学校的网速很慢,我没有安装,不好意思啊!

     

    2008年10月24日 2:14
  • 没有关系,你可以使用Web版的MSN,这个直接通过浏览器就能用的:
    http://webmessenger.msn.com/,然后用你申请的Windows Live ID登陆,就能使用了!
    2008年10月24日 6:21
    版主
  •  

    哦,我知道啦,又要麻烦你了,呵呵……你给我说说.Net中的DataList用法,我原来都不知道,我才在我下载的代码上看到,我用的是vs2003,你给我说说它的用法吧,最好再给我一点代码,好吗?谢谢啦!它是不是专门用来在留言板时用的啊?
    2008年10月24日 15:01
  • 你好!
       实际上用途还有很多的。
       DataList类:
    显示使用模板的项的数据绑定列表控件

    使用 DataList 控件显示模板定义的数据绑定列表。DataList 控件支持选择和编辑。

    DataList 控件的内容可以通过使用模板操控。下表列出了支持的模板。


    模板名称 描述
    AlternatingItemTemplate 如果已定义,则为 DataList 中的交替项提供内容和布局。如果未定义,则使用 ItemTemplate
    EditItemTemplate 如果已定义,则为 DataList 中当前编辑的项提供内容和布局。如果未定义,则使用 ItemTemplate
    FooterTemplate 如果已定义,则为 DataList 的脚注部分提供内容和布局。如果未定义,将不显示脚注部分。
    HeaderTemplate 如果已定义,则为 DataList 的页眉节提供内容和布局。如果未定义,将不显示页眉节。
    ItemTemplate DataList 中的项提供内容和布局所要求的模板。
    SelectedItemTemplate 如果已定义,则为 DataList 中当前选定项提供内容和布局。如果未定义,则使用 ItemTemplate
    SeparatorTemplate 如果已定义,则为 DataList 中各项之间的分隔符提供内容和布局。如果未定义,将不显示分隔符。

    至少,需要定义 ItemTemplate 以显示 DataList 控件中的项。可以使用附加的模板来提供 DataList 控件的自定义外观。

    可以通过为 DataList 控件的不同部分设置样式属性来自定义该控件的外观。下表列出了不同的样式属性。


    样式属性 描述
    AlternatingItemStyle 指定 DataList 控件中交替项的样式。
    EditItemStyle 指定 DataList 控件中正在编辑的项的样式。
    FooterStyle 指定 DataList 控件中页脚的样式。
    HeaderStyle 指定 DataList 控件中页眉的样式。
    ItemStyle 指定 DataList 控件中项的样式。
    SelectedItemStyle 指定 DataList 控件中选定项的样式。
    SeparatorStyle 指定 DataList 控件中各项之间的分隔符的样式。

    也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。


    属性 描述
    ShowFooter 显示或隐藏 DataList 控件的页脚节。
    ShowHeader 显示或隐藏 DataList 控件的页眉节。

    DataList 控件的显示方向可以是垂直或水平的。设置 RepeatDirection 属性以指定显示方向。

    DataList 控件的布局由 RepeatLayout 属性控制。将此属性设置为 RepeatLayout.Table 将以表的形式显示 DataList;而设置为 RepeatLayout.Flow 将显示不具有表结构的 DataList

    警告   此控件可用来显示用户输入,而该输入可能包含恶意的客户端脚本。在应用程序中显示从客户端发送来的任何信息之前,请检查它们是否包含可执行脚本、SQL 语句或其他代码。ASP.NET 提供输入请求验证功能以阻塞用户输入中的脚本和 HTML。还提供验证服务器控件以判断用户输入。有关更多信息,请参见验证服务器控件。
    实例:

    <%@ Page Language="C#" AutoEventWireup="True" %>
    <%@ Import Namespace="System.Data" %>
     
    <html>
       <script runat="server">
     
          ICollection CreateDataSource()
          {
         
             // Create sample data for the DataList control.
             DataTable dt = new DataTable();
             DataRow dr;
     
             // Define the columns of the table.
             dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
             dt.Columns.Add(new DataColumn("StringValue", typeof(String)));
             dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
             dt.Columns.Add(new DataColumn("ImageValue", typeof(String)));
     
             // Populate the table with sample values.
             for (int i = 0; i < 9; i++)
             {
                dr = dt.NewRow();
     
                dr[0] = i;
                dr[1] = "Description for item " + i.ToString();
                dr[2] = 1.23 * (i + 1);
                dr[3] = "Image" + i.ToString() + ".jpg";
     
                dt.Rows.Add(dr);
             }
     
             DataView dv = new DataView(dt);
             return dv;
          }
     
     
          void Page_Load(Object sender, EventArgs e)
          {

             // Load sample data only once, when the page is first loaded.
             if (!IsPostBack)
             {
                ItemsList.DataSource = CreateDataSource();
                ItemsList.DataBind();
             }

          }
     
       </script>
     
    <body>
     
       <form runat=server>

          <h3>DataList Example</h3>
     
          <aspBig SmileataList id="ItemsList"
               BorderColor="black"
               CellPadding="5"
               CellSpacing="5"
               RepeatDirection="Vertical"
               RepeatLayout="Table"
               RepeatColumns="3"
               ShowBorder="True"
               runat="server">

             <HeaderStyle BackColor="#aaaadd">
             </HeaderStyle>

             <AlternatingItemStyle BackColor="Gainsboro">
             </AlternatingItemStyle>

             <HeaderTemplate>

                List of items

             </HeaderTemplate>
                  
             <ItemTemplate>

                Description: <br>
                <%# DataBinder.Eval(Container.DataItem, "StringValue") %>

                <br>

                Price: <%# DataBinder.Eval(Container.DataItem, "CurrencyValue", "{0:c}") %>

                <br>

                <asp:Image id="ProductImage"
                     ImageUrl='<%# DataBinder.Eval(Container.DataItem, "ImageValue") %>'
                     runat="server"/>

             </ItemTemplate>
     
          </aspBig SmileataList>
     
       </form>
     
    </body>
    </html>


    2008年10月24日 15:16
    版主