1. 程式人生 > 遊戲攻略 >《原神攻略》夜蘭和行秋哪個好?夜蘭和行秋區別介紹

《原神攻略》夜蘭和行秋哪個好?夜蘭和行秋區別介紹

1.將主程式介面上的Icon賦給基類內的Icon(同時其他子類也具有了此Icon):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public partial class BaseForm : Form {     public BaseForm()     {         InitializeComponent();           String exeFileName = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + 
"\\A.B.Main.exe";         if (System.IO.File.Exists(exeFileName))         {             System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFrom(exeFileName);             if (assembly != null)             {                 System.IO.Stream stream = assembly.GetManifestResourceStream(
"A.B.Main.C.ico");                 if (stream != null)                 {                     this.Icon = new Icon(stream);                 }             }         }     } }

  

 2、獲取介面:

1 2 Assembly assembly = Assembly.LoadFrom(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + 
"\\A.B.UI.dll");            this.iUIC = assembly.CreateInstance("A.B.UI.UIC"false, BindingFlags.Default, nullnullnullnullas IUIC;

3、獲取xml檔案

1 2 3 4 5 6 Assembly assembly = Assembly.LoadFrom(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\A.B.UI.dll");            Stream stream = assembly.GetManifestResourceStream(assembly.GetName().Name + ".Config.xml");            System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();            xmlDoc.Load(stream);            stream.Close();            stream.Dispose();

4、建立窗體:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 public static Form CreateForm(String formAssemblyFile, String formFullName, Object[] formArgs, String formName, String formText)        {            Form form;            Assembly formAssembly = Assembly.LoadFrom(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + formAssemblyFile);              if (formArgs == null)            {                form = formAssembly.CreateInstance(formFullName, false, BindingFlags.Default, nullnullnullnullas Form;            }            else            {                form = formAssembly.CreateInstance(formFullName, false, BindingFlags.Default, null, formArgs, nullnullas Form;            }              if (form == null)            {                string strError = string.Format("CreateForm失敗\nformAssemblyFile={0}\nformFullName={1}\nformName={2}\nformText={3}",                    formAssemblyFile,                    formFullName,                    formName,                    formText);                throw new Exception(strError);            }              if (!String.IsNullOrEmpty(formName))            {                form.Name = formName;            }            if (!String.IsNullOrEmpty(formText))            {                form.Text = formText;            }              return form;        }

 4、獲取版本資訊:

(1)Assembly.GetExecutingAssembly().GetName().Version.ToString();

(2)object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyDescriptionAttribute)attributes[0]).Description;

(3)object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyProductAttribute)attributes[0]).Product;

   反射對控制元件的操作:呼叫函式(含引數|不含引數)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #region 呼叫控制元件方法    private void InvokeMethod(String methodName, Control control, Object[] args)    {        this.SetPropertyValue("UserTempFilePath", control, this.userTempPathFullName);          try        {            Type ctlType = control.GetType();            MethodInfo mi = null;            if (args == null)            {                mi = ctlType.GetMethod(methodName, System.Type.EmptyTypes);            }            else            {                mi = ctlType.GetMethod(methodName);            }              if (mi != null)            {                mi.Invoke(control, args);                  this.SetPropertyValue("IsReadOnly", control, true);            }        }        catch (Exception e)        {            throw e;        }    }    #endregion      #region 設定控制元件屬性    private void SetPropertyValue(String propertyName, Control control, Object propertyValue)    {        Type ctlType = control.GetType();        PropertyInfo pi = ctlType.GetProperty(propertyName);        if (pi != null)        {            pi.SetValue(control, propertyValue, null);        }    }    #endregion