C # resource manager source (with icon display), thinking, orange bird, blade, please come forward.

zhaozj2021-02-16  55

C # resource manager source (with icon display), thinking, orange bird, blade, please come forward.

Attached to a piece of work, for everyone to comment. I heard that Mr. Zi's morality is both. I really want to get your correct. See the speech of Mr. Orange Bird. Very fresh, is a non-own publicinist. Although I don't praise, I don't feel. Sikiki, please come in. But you have to be a specific. Example "XX sentence is too stinky". I also like the blowing stick of the rookie, after all, I'm going. In short, please welcome the comments. Blowing the stick makes me feel more, and the sound made me awake. May I ask the prototype, how can I increase the division, I have a lot of points, and I have a lot of questions. Is it possible to score anything. If I think I contribute, please give me some points. Thank you.

By the way, a question is as follows: float f1 = 2.11111f; dc.drawstring (f1.tostring (), font, brush, 8, 8); I want to output 2 digits after the decimal point in the first parameter, not 5 digits . How to cut off the 3 digits.

// C # source code resources management using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using System.Runtime.InteropServices;

Summary description of Namespace mytree {///

/// Form1. /// public class Form1: System.Windows.Forms.Form {private System.Windows.Forms.ImageList TreeImageList; private System.Windows.Forms.MainMenu mainMenu1; private System.Windows.Forms.MenuItem menuItem1; private System.Windows.Forms.ListView listView1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TreeView treeView1; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Splitter splitter1; private System.Windows.Forms.Button button1; private System.Windows.Forms.ImageList LisrimageList; private System.Windows.Forms.ImageList LisrimageList2; private System.Windows.Forms.StatusBar statusBar1; private System.Windows.Forms.StatusBarPanel statusBarPanel1; private System.Windows.Forms.StatusBarPanel statusBarPanel2; private System.Windows.Forms.MenuItem menuItem2; private System.Windows.Forms.MenuItem menuItem3; private System.Windows .Forms.MenuItem menuItem4; private System.Windows.Forms.MenuItem menuItem5; private System.Windows.Forms.MenuItem menuItem6; private System.Windows.Forms.MenuItem menuItem7; private System.Windows.Forms.Label label1; private System.ComponentModel {// // initiRizeComponent ();

Icon IC0 = myextracticon ("% systemroot% // system32 // shell32.dll", 15); treeimagelist.images.add (icon IC1 = myextracticon ("% systemroot% // system32 // shell32.dll", SESTEM32 // SHELL32.DLL 5); Treeimagelist.Images.Add (IC1); icon IC2 = MyExtracticon ("% systemroot% // system32 // shell32.dll", 7); treeiMagelist.images.add (IC2); icon IC3 = myextracticon ("%) Systemroot% // system32 // shell32.dll ", 11); TreeImagelist.images.add (IC3); ICON IC4 = MyExtracticon ("% systemroot% // system32 // shell32.dll ", 3); TreeImageList.Images. Add (IC4); ICON IC5 = MyExtracticon ("% systemroot% // system32 // shell32.dll", 4); treeimagelist.images.add (IC5); icon IC6 = myextracticon ("% systemroot% // system32 ////// Shell32.dll ", 101); TreeImageList.Images.Add (IC6);

GetDrive ();

///

/// Clean all the resources being used. /// Protected Override Void Dispose (Bool Disposing) {if (disponents! = Null) {components.dispose ();}} Base.Dispose

#Region Windows Form Designer Generated Code ///

/// Designer Supports the required method - Do not use the code editor to modify the // / this method.

/// private void InitializeComponent () {this.components = new System.ComponentModel.Container (); this.TreeImageList = new System.Windows.Forms.ImageList (this.components); this.mainMenu1 = new System .Windows.Forms.mainMenu (); this.Menuitem1 = new system.windows.forms.Menuitem (); this.Menuitem2 = new system.windows.forms.MenuItem (); this.Menuitem3 = new System.Windows.Forms. Menuitem (); this.Menuitem4 = new system.windows.forms.Menuitem (); this.Menuitem5 = new system.windows.forms.MenuItem (); this.Menuitem6 = new system.windows.forms.MenuItem (); this .menuItem7 = new System.Windows.Forms.MenuItem (); this.listView1 = new System.Windows.Forms.ListView (); this.textBox1 = new System.Windows.Forms.TextBox (); this.treeView1 = new System .Windows.forms.treeview (); this.Panel2 = new system.windows.Forms.Panel (); this.label1 = new system.windows.forms.Label (); this.button1 = new system.windows.forms ..... Button (); this.panel1 = new system.windows.forms.panel ); This.splitter1 = new System.Windows.Forms.Splitter (); this.LisrimageList = new System.Windows.Forms.ImageList (this.components); this.LisrimageList2 = new System.Windows.Forms.ImageList (this. components); this.statusBar1 = new System.Windows.Forms.StatusBar (); this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel (); this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel (); this. panel2.SuspendLayout (); this.panel1.SuspendLayout (); ((System.ComponentModel.ISupportInitialize) (this.statusBarPanel1)) BeginInit ();.. ((System.ComponentModel.ISupportInitialize) (this.statusBarPanel2)) BeginInit ( );

this.SuspendLayout (); // // TreeImageList // this.TreeImageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.TreeImageList.ImageSize = new System.Drawing.Size (16, 16); this.TreeImageList .TransparentColor = System.Drawing.Color.Transparent; // // mainMenu1 // this.mainMenu1.MenuItems.AddRange (new System.Windows.Forms.MenuItem [] {this.menuItem1, this.menuItem2, this.menuItem3, this .menuitem4}); // // Menuitem1 // this.Menuitem1.index = 0; this.Menuitem1.text = "file"; /// Menuitem2 // this.Menuitem2.index = 1; this.Menuitem2.text = "Edit"; ///////////////////////////>.Menuitem3.Text = "Weidding"; this.Menuitem3.click = new system.eventhandler (this.Menuitem3_click); // // Menuitem4 // this.Menuitem4.index = 3; this.Menuitem4.MenuItems.addrange (new system.windows.forms.Menuitem [] {this.m Enuitem5, this.Menuitem6, this.Menuitem7}; this.Menuitem4.text = "list mode"; //////////////////////////////////////////////> .menuitem5.click = new system.eventhandler (this.Menuitem5_click); ///Menuitem6 // this.Menuitem6.index = 1; this.Menuitem6.text = "small icon"; this.Menuitem6.click = new System.EventHandler (this.Menuitem6_Click); // // Menuitem7 // this.Menuitem7.index = 2; this.Menuitem7.text = "detailed list"; this.Menuitem7.click =

new System.EventHandler (this.menuItem7_Click); // // listView1 // this.listView1.Activation = System.Windows.Forms.ItemActivation.OneClick; this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; this .listview1.location = new system.drawing.point (221, 25); this.listview1.name = "listview1"; this.listview1.size = new system.drawing.size (491, 381); this.listview1.tabindex = 3; this.listView1.View = System.Windows.Forms.View.SmallIcon; this.listView1.ItemActivate = new System.EventHandler (this.listView1_ItemActivate); // // textBox1 // this.textBox1.Dock = System .Windows.Forms.dockStyle.top; this.textbox1.name = "textbox1"; this.textbox1.size = new system.drawing.size (712, 25); this.textBox1.tabindex = 5; this.textbox1.text = ""; // // TreeView1 // this.treeView1.Anchor = ((System.Windows.Forms.Anchorstyles.top | System.Windows.Forms.Anchorstyles.Bottom) | System.Windows.Forms.Anchorstyles.Lorms.Anchorstyles.Left ) | System.windows.Forms.Anchorstyl Es.right); this.treeview1.imageindex = -1; this.treeview1.itemheight = 18; this.treeview1.location = new system.drawing.point (0, 29); this.treeView1.name = "treec1"; this.treeView1.SelectedImageIndex = -1; this.treeView1.Size = new System.Drawing.Size (216, 349); this.treeView1.TabIndex = 1; this.treeView1.AfterSelect = new System.Windows.Forms.TreeViewEventHandler (this.treeView1_AfterSelect_1); this.treeView1.BeforeExpand = new System.Windows.Forms.TreeViewCancelEventHandler (this.treeView1_BeforeExpand_1); // // panel2 // this.panel2.BorderStyle =

System.Windows.Forms.BorderStyle.Fixed3D; this.panel2.Controls.AddRange (new System.Windows.Forms.Control [] {this.label1, this.button1}); this.panel2.Dock = System.Windows.Forms .Dockstyle.top; this.Panel2.name = "panel2"; this.Panel2.size = new system.drawing.size (216, 28); this.Panel2.tabindex = 0; // // label1 // this. Label1.dock = system.windows.Forms.dockStyle.Label1.Font = new system.drawing.font ("Song", 9F, System.drawing.FontStyle.bold, System.drawing.graphicsUnit.Point, (134))); this.label1.name = "label1"; this.label1.size = new system.drawing.size (56, 24); this.label1.tabindex = 1; this.label1 .Text = "folder"; this.label1.textalign = system.drawing.contentalignment.bottomleft; // // button1 // this.button1.dock = system.windows.forms.dockstyle.right; this.button1.flatstyle = System.Windows.Forms.FlatStyle.Popup; this.button1.location = new system.drawing.point (188, 0); this .Button1.name = "button1"; this.button1.size = new system.drawing.size (24, 24); this.button1.tabindex = 0; this.button1.text = "x"; this.button1.click = new system.eventhandler (this.button1_click); //// Panel1 // this.Panel1.controls.addrange (new system.windows.forms.control [] {this.treeView1, this.panel2}; this. Panel1.dock = system.windows.Forms.dockStyle.d; this.Panel1.Location = new system.drawing.point (0, 25); this.panel1.name = "panel1"; this.Panel1.size = new System .Drawing.size (216, 381); this.panel1.tabindex =

6; // // splitter1 ///His.Splitter1.Borderstyle = system.windows.Forms.Borderstyle.fixed3d; this.splitter1.Location = new system.drawing.point (216, 25); this.splitter1.name = " Splitter1 "; this.splitter1.size = new system.drawing.size (5, 381); this.splitter1.tabindex = 7; this.splitter1.tabstop = false; /// LisrimageList // this.lisrimagelist.colorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.LisrimageList.ImageSize = new System.Drawing.Size (16, 16); this.LisrimageList.TransparentColor = System.Drawing.Color.Transparent; // // LisrimageList2 // this .LisrimageList2.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.LisrimageList2.ImageSize = new System.Drawing.Size (16, 16); this.LisrimageList2.TransparentColor = System.Drawing.Color.Transparent; // / / statusbar1 // this.statusbar1.location = new system.drawing.point (0, 406); this.statusbar1.name = "statusbar1"; this.statusbar1.Panels.Addrange (New System. Windows.Forms.StatusBarPanel [] {this.statusBarPanel1, this.statusBarPanel2}); this.statusBar1.Size = new System.Drawing.Size (712, 22); this.statusBar1.TabIndex = 8; this.statusBar1.Text = "statusBar1"; // // statusBarPanel1 // this.statusBarPanel1.BorderStyle = System.Windows.Forms.StatusBarPanelBorderStyle.None; this.statusBarPanel1.Text = "statusBarPanel1"; this.statusBarPanel1.Width = 132; // // statusBarPanel2 // this.statusbarpanel2.borderstyle = system.windows.Forms.statusbarPanelborderstyle.none; this.statusbarpanel2.text = "

STATUSBARPANEL2 "; this.statusbarPanel2.width = 132; // // Form1 // this.autoscalebasesize = new system.drawing.size (8, 18); this.clientsize = new system.drawing.size (712, 428); This.Controls.addrange (new system.windows.forms.control [] {this.listview1, this.splitter1, this.panel1, this.textbox1, this.statusbar1}); this.Menu = this.mainMenu1; thermure = "Form1"; this.text = "My Resource Manager - Qulin Design - 2002.9"; this.Panel2.ResumeLayout (False); this.Panel1.ResumeLayout (false); ((System.comPonentModel); ISupportInitialize (this.statusbarpanel1)). Endinit (); ("this.statusbarpanel2). Endinit (); this.ResumeLayout (false);} #ENDREGION

///

/// The primary entry point of the application. /// [stathread] static void main () {Application.run (new form1 ());}

// ******************************************************** ************************************ [DLLIMPORT ("shell32.dll")] public static extern Int Extracticon (INTPTR H, STRING STRX, INT II);

[DLLIMPORT ("shell32.dll")] public static extern int shGetfileInfo (String Pszpath, Uint DwfileAttributes, Ref shfileinfo psfi, uint cbfileinfo, uint uflags);

Public struct shfileinfo {public int 1Icon; public uint dwattribute; public char szdisplayname; public char sztypename;}

String strhuangpath = ""; // ************************************************** *********************************************************************************** Protected Virtual Icon MyExTracton (String FileName , int Iindex) {Try {INTPTR HICON = (INTPTR) Extracticon (this.handle, filename, IIndex); if (! hicon.equals (null)) {icon icon = icon.fromhandle (hic); return;}} Catch (Exception EX) {MessageBox.show (ex.Mersage, "Error Tips", 0, MessageBoxicon.Error);} return null;} // ************************* *********************************************************** ***************** Protected Virtual Void Seticon (imagelist imagelist, string filename, bool tf) {shfileinfo fi = new shfileinfo (); if (tf == true) {INT Itotal = (int) SHGETFILEINFO (FileName, 0, REF FI, 100, 16640); // SHGFI_ICON | SHGFI_SMALLICON TRY {IF (ITOTAL> 0) {icon ic = icon.fromhandle (fi.hicon); imagelist.images.add (IC); // Return IC;}} Catch (Exception EX) {MessageBox.Show (ex.Message, "Error Tips", 0, MessageBoxicon.Error);}} else {int} FO (FileName, 0, Ref Fi, 100, 257); Try {IF (ITOTAL> 0) {icon icon = icon.fromhandle (fi.hicon); imagelist.images.add (IC); // return} } Catch (exception ex) {messagebox.show (ex.Message, "Error Tips", 0, MessageBoxicon.Error);}} // Return NULL;} // ************* *********************************************************** *********************

Public void getDrive () {TreeView1.imagelist = TreeImageList; TreeView1.BeginUpdate (); TreeView1.nodes.clear ();

Treenode Rootnode = New Treenode ("My Computer", 0, 0); TreeView1.nodes.Add (RootNode); Int iimageIndex = 2; int tent1electedindex = 2; string [] astrives = Directory.getLogicalDrives ();

Foreach (String Str in Astrives) {IF (Str == "A: //") {typeIndex = 1; ISELECTEDINDEX = 1;} else if (str == "g: //") {typeIndex = 3; ISELECTEDEX = 3;} else {typeIndex = 2; ISELECTEDINDEX = 2;}

Treenode Tndrive = New Treenode (Str, IImageIndex, Iselected); TreeView1.Nodes [0] .NODES.ADD (TNDRIVE); AddDirectories (TNDRIVE);

IF (Str == "C: //) {TreeView1.SelectedNode = Tndrive;}} TreeView1.EndUpdate ();} // ********************** *********************************************************** ****************

Void AddDirectories (TREENODE TN) {TN.NODES.CLEAR ();

String strpath = tn.fullpath; strpath = strpath.remove (0, 5);

// Get the current directory DirectoryInfo Dirinfo = New DirectoryInfo (StrPath); DirectoryInfo [] AdirInfo; Try {AdirInfo = Dirinfo.getdirectories ();} catch {return;

INT IIMAGEINDEX = 4; ISElectedIndex = 5; Foreach (Di.Name == "Recycler" || di.name == "Recycled" || di.Name == "Recycled") { ISELECTEDINDEX = 6;} else {type {IIMAGEINDEX = 4; ISELECTEDINDEX = 5;}

Treenode Tndir = New Treenode (Di.Name, IIMAGEX, ISELECTEDINDEX); TN.NODES.ADD (TNDIR);

/ * // Get all files in the current directory fileInfo [] Dirfiles; Dirfiles = Dirinfo.getFiles (); int icount = 7;

Foreach (fileInfo fi in dirfiles) {// Get each file icon String str = fi.fullname; try {seticon (TreeImageList, str, false);} catch (exception ex) {messagebox.show (ex.Message, " Error Tips ", 0, MessageBoxicon.Error);} Treenode Tndir = New Treenode (FI.NAME, ICOUNT, ICOUNT); TN.NODES.ADD (TNDIR);

ICOUNT ;} * /} // **************************************************** ***************************************** / / in large icons, small icon, a detailed list of call handover protected virtual void ListViewAB (int iii) {if (iii == 1) {LisrimageList2.ImageSize = new Size (32,32); listView1.LargeImageList = LisrimageList2; if (listView1.View == View .Details || Listview1.view == view.smallicon) {listview1.view = view.lageicon;}} else if (iii == 2) {if (listview1.view == view.details || listview1.view == View.lageicon) {listview1.view = view.smallicon;}} else {if (listView1.view == view.lageicon || listview1.view == view.smallicon) {listview1.view = view.details;}}} // ******************************************************** ******************************************************* Private void TreeView1_beforeExpand_1 (Object Sender, System.Windows.Forms. TreeViewCanceEventArgs E) {//base.onbeforeexpand (e); TreeView1.BeginUpdate ();

Foreach (Treenode Tn in E.Node.Nodes) {AddDirectories (TN);

TreeView1.Endupdate ();

// ******************************************************** **********************************************

Protected Virtual Void Initlist (THENODE TN) {this.statusbarpanel1.text = "is refreshing folders, please wait ....."; this.cursor = cursors.waitcursor;

this.LisrimageList2.Images.Clear (); this.LisrimageList.Images.Clear (); listView1.SmallImageList = LisrimageList; Icon ic0 = myExtractIcon ( "% SystemRoot% // system32 // shell32.dll", 3); LisrimageList. Images.Add (IC0) ;. Lisrimagelist2.images.add (IC0);

Listview1.clear (); // Settings list box's head listView1.columns.add ("File Name", 160, HorizontalaLight.Columns.Add ("File Size", 120, HorizontalaLignment.Left); Listview1.columns.add ("Create Time", 120, Horizontalalignment.Left); ListView1.columns.Add ("Access Time", 200, HorizontalaLight.Left); string strpath = tn.fullpath; strPath = strpath.remove (0 5); // Get all files DirectoryInfo curdir = new directoryInfo (STRPATH); // creates a directory object. FileInfo [] Dirfiles; try {dirfiles = curdir.getfiles ();} catCH {return;}

String [] arrsubitem = new string [4]; // creation time and access time. Int iCount = 0; int iconindex = 1; // uses 1, without 0 is to let the zero icon. foreach (FileInfo fileInfo in dirFiles) {string strFileName = fileInfo.Name; // if not a file pagefile.sys if (strFileName.Equals ( "pagefile.sys")!) {arrSubItem [0] = strFileName; arrSubItem [1] = Fileinfo.Length "bytes"; arrsubitem [2] = fileinfo.creationTime.toString (); arrsubitem [3] = fileinfo.lase {arrsubitem [);} else {arrsubitem [1] = "Unknown size"; arrsubitem [2 ] = "Unknown Date"; arrsubitem [3] = "Unknown Date";

// Get each file icon str = fileinfo.fullname; try {seticon (LisrimageList, Str, False); seticon (LisrimageList2, str, true);} catch (exception ex) {messagebox.show (ex.Message, "Error Tip", 0, MessageBoxicon.Error);

// Insert List Item ListViewItem LiItem = New ListViewItem (ArrsubiteM, iconIndex); ListView1.Items.Insert (iCount, LiItem);

iCount ; iconIndex ;} strFilePath = strPath; textBox1.Text = strPath; this.statusBarPanel1.Text = strPath; this.statusBarPanel2.Text = "number of files:" iCount.ToString () "th"; this.Cursor = Cursors .Arrow; // The following is to insert a directory in the list box, not a file. Get each subdirectory in the current directory. IITEM = 0;

DirectoryInfo Dir = new DirectoryInfo (strPath); foreach (DirectoryInfo di in Dir.GetDirectories ()) {ListViewItem LiItem = new ListViewItem (di.Name, 0); listView1.Items.Insert (iItem, LiItem); iItem ;}

} // ***************************************************************** ***********************************************

Protected Virtual Void Initlist2 (String Strname) {this.statusbarpanel1.text = "is refreshing folder, please wait ....."; this.cursor = cursors.waitcursor;

this.LisrimageList2.Images.Clear (); this.LisrimageList.Images.Clear (); listView1.SmallImageList = LisrimageList; Icon ic0 = myExtractIcon ( "% SystemRoot% // system32 // shell32.dll", 3); LisrimageList. Images.add (IC0); LisrimageList2.images.Add (IC0);

Listview1.clear (); // Settings list box's head listView1.columns.add ("File Name", 160, HorizontalaLight.Columns.Add ("File Size", 120, HorizontalaLignment.Left); ListView1.columns.add ("Create Time", 120, Horizontalalightment.Left); ListView1.columns.Add ("Access Time", 200, Horizontalalignment.Left);

// Get all files DirectoryInfo curdir = new directoryInfo (Strname); // creation of directory. FileInfo [] Dirfiles; try {dirfiles = curdir.getfiles ();} catCH {return;}

String [] arrsubitem = new string [4]; // creation time and access time. Int iCount = 0; int iconindex = 1; // uses 1, without 0 is to let the zero icon. foreach (FileInfo fileInfo in dirFiles) {string strFileName = fileInfo.Name; // if not a file pagefile.sys if (strFileName.Equals ( "pagefile.sys")!) {arrSubItem [0] = strFileName; arrSubItem [1] = Fileinfo.Length "bytes"; arrsubitem [2] = fileinfo.creationTime.toString (); arrsubitem [3] = fileinfo.lase {arrsubitem [);} else {arrsubitem [1] = "Unknown size"; arrsubitem [2 ] = "Unknown Date"; Arrsubitem [3] = "Unknown Date";} // Get Each file icon String str = fileinfo.fullname; try {seticon (LisrimageList, Str, False); Seticon (LisrimageList2, Str, True);} catch (exception ex) {messagebox.show (ex.Message, "Error Tips", 0, MessageBoxicon.Error);

// Insert List Item ListViewItem LiItem = New ListViewItem (ArrsubiteM, iconIndex); ListView1.Items.Insert (iCount, LiItem);

iCount ; iconIndex ; // must be added to listview1.Items.insert (iCount, LiItem);} strfilepath = strname; // assign the path to the global variable StrfilePath

TEXTBOX1.TEXT = STRNAME; this.statusbarpanel2.text = "file quantity:" iCount.toString () "one"; this.cursor = cursors.Arrow;

/ / The following is to insert a directory in the list box, not a file. Get each subdirectory in the current directory. IITEM = 0; // Call ListView1.Items.Isert (IIITEM, LiItem); IconIndex cannot be used.

DirectoryInfo Dir = New DirectoryInfo (STRNAME); // Create a directory object. Foreach (DirectoryInfo di in dir.getdirectories ()) {listviewItem LiItem = new listviewItem (Di.Name, 0); listview1.items.insert (IIITEM, LiItem); IIIM ;}

} // ***************************************************************** ***********************************************

Private void TreeView1_AFTERSELECT_1 (Object sender, system.windows e) {if (e.node.text == "My Computer") {Return;} InitList (E.NODE);} // **** *********************************************************** *****************************

PRIVATE VOID Button1_Click (Object Sender, System.EventArgs E) {this.Panel1.hide ();} // ************************************** *********************************************************** **********

private void listView1_ItemActivate (object sender, System.EventArgs e) {string str = Path.Combine (strFilePath, listView1.FocusedItem.Text); try {if (listView1.FocusedItem.SubItems.Count> 1) {System.Diagnostics.Process. START (STR);} else {INITLIST2 (STR);}} catch {return;}} // **************************** *********************************************************** ******** Private void meneuitem3_click (object sender, system.eventargs e) {this.Panel1.visible =! Panel1.visible;} // ************** *********************************************************** ************************** Private Void Menuitem5_Click (Object Sender, System.EventArgs E) {listviewab (1);} // ********* *********************************************************** *********************************** Private Void Menuitem6_Click (Object Sender, System.EventArgs E) {listviewab (2);} // *** *********************************************************** ****************************************** Private Void MenuItem7_Click (Object Sender, System.EventArgs E) {listvi EWAB (3);} // *************************************************** *************************************************

}

转载请注明原文地址:https://www.9cbs.com/read-25610.html

New Post(0)