zoukankan      html  css  js  c++  java
  • 子窗体,主窗体,互相传值,组策略,子窗体文本选择,select,length,反射系列<二> Virus

    在昨天的教程



    窗体传值,子窗体,父窗体,反射,reflection,windows,组策略,gpedit.msc,动态创建窗体,谢谢


    中我写到了,传值遇到的问题,主要是因为子窗体是反射出来的,所以子窗体的属性也应该反射才可以得到,可以看我的上面的教程,但是早上来了,觉得还不完美,因为windows组策略是可以从子窗体传值过去的,我又做了 一些小的修改,但是组策略子窗体打开的时候,里面的文本是被选择的,如果是textbox的话,可以使用selectall方法,但是numericnubmber没有selectall,它的select有一个重载,参数是start,length倒是可以实现,但是这个length又不知道怎么获得了,希望大家给点提示,谢谢!

    下面是修改之后的代码,主窗体:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Reflection;

    namespace PersonalUdisk
    {
        
    public partial class frmModifyConfig : Form
        
    {
            
    private TreeNode _selectedNode;

            
    public frmModifyConfig()
            
    {
                InitializeComponent();
            }


            
    private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
            
    {
                _selectedNode 
    = e.Node;
                lvConfig.Items.Clear();
                Fill_lvConfig(_selectedNode);
            }

            
    private void Fill_lvConfig( TreeNode treeNode)
            
    {
                
    if (treeNode.Text ==Convert.ToString( PolicyType.PIN码策略))
                
    {

                    ListViewItem lvItem1 
    = new ListViewItem();
                    lvItem1.SubItems.Clear();
                    lvItem1.SubItems[
    0].Text = "PIN码长度最小值";
                    lvItem1.SubItems.Add(
    "5 个字符");
                    lvItem1.SubItems.Add(
    "frmPasswordLength");
                    lvConfig.Items.Add(lvItem1);
                }

            }

            
    private int iReturnValue;
            
    public int IReturnValue
            
    {
                
    get return this.iReturnValue; }
                
    set{this.iReturnValue=value;}
            }

            
    private void lvConfig_DoubleClick(object sender, EventArgs e)
            
    {
                Type type 
    = Type.GetType("PersonalUdisk." + lvConfig.SelectedItems[0].SubItems[2].Text);
                
    this.iReturnValue =Convert.ToInt32( lvConfig.SelectedItems[0].SubItems[1].Text.Substring(0, lvConfig.SelectedItems[0].SubItems[1].Text.IndexOf(" ")));
                
    object obj = Activator.CreateInstance(type);
                
                Form form 
    = (Form)obj;
                form.Owner 
    = this;
                form.ShowDialog();
                
    if (form.DialogResult == DialogResult.OK)
                
    {
                    
    this.iReturnValue = Convert.ToInt32(type.GetProperty("PINLength").GetValue(form, null));
                    
    this.lvConfig.SelectedItems[0].SubItems[1].Text = this.iReturnValue.ToString() + " 个字符";
                }

            }

        }

        
    public enum PolicyType
        
    {
            PIN码策略
        }

    }
    子窗体:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace PersonalUdisk
    {
        
    public partial class frmPasswordLength : Form
        
    {
            
            
    private frmModifyConfig frmParent;

            
    public frmPasswordLength()
            
    {
                InitializeComponent();
                btnOK.DialogResult 
    = DialogResult.OK;
                btnCancel.DialogResult 
    = DialogResult.Cancel;
               
            }

            
    public int PINLength
            
    {
                
    get return Convert.ToInt32( this.numericPINLength.Value); }
                
    set this.numericPINLength.Value = value; ;}
            }

            
            
    private void numericPINLength_ValueChanged(object sender, EventArgs e)
            
    {
                
    if (this.numericPINLength.Value == 0)
                
    {
                    
    this.lblPINLengthInfo.Text = "不要求PIN码。";
                }

                
    else
                
    {
                    
    this.lblPINLengthInfo.Text = "PIN码必须至少是:";
                }

            }

            

            
    private void frmPasswordLength_Load(object sender, EventArgs e)
            
    {
                frmParent 
    = (frmModifyConfig)this.Owner;
                
    this.numericPINLength.Value = frmParent.IReturnValue;
                
                
    //this.numericPINLength.Value = 0;
                
    //this.lblPINLengthInfo.Text = "不要求PIN码。";
            }


            
    private void btnOK_Click(object sender, EventArgs e)
            
    {
                
    this.PINLength = Convert.ToInt32( this.numericPINLength.Value);

            }



        }

    }
    谢谢!

    【Blog】http://virusswb.cnblogs.com/

    【MSN】jorden008@hotmail.com

    【说明】转载请标明出处,谢谢

    反馈文章质量,你可以通过快速通道评论:

  • 相关阅读:
    JVM垃圾收集器以及内存分配
    VisualVM工具的使用
    jstack的使用
    内存溢出的定位与分析
    JVM的内存模型
    JVM运行参数
    kafka-高效读写数据+zookeeper作用+事务
    重定向机制
    HTTP协议、时间戳
    TCP常见面试题 
  • 原文地址:https://www.cnblogs.com/virusswb/p/1208109.html
Copyright © 2011-2022 走看看