Trang 1 trên tổng số 5 123... Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 47 kết quả

Đề tài: Một số thao tác quậy trên WinForm C#

  1. #1
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking Một số thao tác quậy trên WinForm C#

    >>>Làm thế nào thiết lập một default button ?
    1. Set tabindex = 0;
    2. Set lập thuộc tính trên form cho button
    Visual C# Code:
    1. form1.AcceptButton = button1;

    >>>Làm thế nào để in 1 form qua máy in nhỉ?
    1. Cho vào chương trình component : PrintDocument
    2. Dùng hàm mẫu sau :
    Visual C# Code:
    1. private void printFormToPrinter()
    2. {
    3.   PrintDialog printDialog1 = new PrintDialog();
    4.   printDialog1.Document = printDocument1;
    5.   DialogResult result = printDialog1.ShowDialog();
    6.   if ( result == DialogResult.OK )
    7.     printDocument1.Print();
    8. }
    3. Vẽ form khi ra máy in
    Visual C# Code:
    1. using System.Drawing.Printing;
    2.  
    3. private void printDocument1_PrintPage( object sender, PrintPageEventArgs e)
    4. {
    5.   Graphics graphic = CreateGraphics();
    6.   Image memImage = new Bitmap( Size.Width, Size.Height, graphic );
    7.   Graphics memGraphic = Graphics.FromImage( memImage );
    8.   IntPtr dc1 = graphic.GetHdc();
    9.   IntPtr dc2 = memGraphic.GetHdc();
    10.   BitBlt( dc2, 0, 0, ClientRectangle.Width,
    11.     ClientRectangle.Height, dc1, 0, 0, 13369376 );
    12.   graphic.ReleaseHdc( dc1 );
    13.   memGraphic.ReleaseHdc( dc2 );
    14.   e.Graphics.DrawImage( memImage, 0, 0 );
    15. }

    >>>Làm thế nào lấy bitmap của một form ?
    Visual C# Code:
    1. using System;
    2. using System.Drawing;
    3. using System.Drawing.Imaging;
    4. using System.Runtime.InteropServices;
    5. using System.Windows.Forms;
    6.  
    7. class CustomForm : Form
    8. {
    9.   [ DllImport( "gdi32.dll" ) ]
    10.   private static extern bool BitBlt( IntPtr hdcDest, int nXDest, int nYDest,
    11.     int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, Int32 dwRop );
    12.  
    13.   private const Int32 SRCCOPY = 0xCC0020;
    14.  
    15.   public void SaveImage( string filename )
    16.   {
    17.     using ( Graphics g1 = CreateGraphics() )
    18.     {
    19.       Image image =
    20.         new Bitmap( ClientRectangle.Width, ClientRectangle.Height, g1 );
    21.       using ( Graphics g2 = Graphics.FromImage( image ) )
    22.       {
    23.         IntPtr dc1 = g1.GetHdc();
    24.         IntPtr dc2 = g2.GetHdc();
    25.         BitBlt( dc2, 0, 0, ClientRectangle.Width, ClientRectangle.Height,
    26.           dc1, 0, 0, SRCCOPY );
    27.         g2.ReleaseHdc( dc2 );
    28.         g1.ReleaseHdc( dc1 );
    29.       }
    30.       image.Save( filename, ImageFormat.Bmp );
    31.     }
    32.   }
    33. }

    >>>Làm thế nào lấy giá trị của Txtbox trong form này trong khi nó nằm ở form khác ?
    Visual C# Code:
    1. string strValue = myFormA.TextBox1.Text;

    >>>Không cần làm form active mà vẫn show được ?
    Muốn show mà không cần active form :
    Visual C# Code:
    1. TrickClass.SetVisibleNoActivate( myForm, true );
    Muốn hide đi :
    Visual C# Code:
    1. TrickClass.SetVisibleNoActivate( myForm, false );
    Định nghĩa tạm cho TrickClass với cách xài method :
    Visual C# Code:
    1. public class TrickClass
    2. {
    3.   [ DllImport( "user32.dll" ) ]
    4.   extern public static bool SetWindowPos( IntPtr hWnd,
    5.     IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, int uFlags );
    6.  
    7.   public const int HWND_TOPMOST = -1; // 0xffff
    8.   public const int SWP_NOSIZE = 1; // 0x0001
    9.   public const int SWP_NOMOVE = 2; // 0x0002
    10.   public const int SWP_NOACTIVATE = 16; // 0x0010
    11.   public const int SWP_SHOWWINDOW = 64; // 0x0040
    12.  
    13.   public static void ShowWindowTopMost( IntPtr handle )
    14.   {
    15.     SetWindowPos( handle, (IntPtr) HWND_TOPMOST, 0, 0, 0, 0,
    16.       SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_SHOWWINDOW );
    17.   }
    18.  
    19.   public static void SetVisibleNoActivate( Control control, bool visible )
    20.   {
    21.     if ( visible )
    22.       ShowWindowTopMost( control.Handle );
    23.     control.Visible = visible;
    24.   }
    25. }

    >>>Làm thế nào để bắt hết được các kiểu exception xảy ra trên form nhỉ ?
    Visual C# Code:
    1. using System.Threading;
    2.  
    3. [STAThread]
    4. {
    5.   Application.ThreadException +=
    6.     new ThreadExceptionEventHandler( UnhandledExceptionCatcher );
    7.   Application.Run( new Form1() );
    8. }
    9.  
    10. private static void UnhandledExceptionCatcher(object sender,
    11.   ThreadExceptionEventArgs e)
    12. {
    13.   Console.WriteLine( "bắt được Exception nè :D !" );
    14. }

    >>>Làm thế nào để thiết lập icon của form từ bitmap nhỉ?
    Visual C# Code:
    1. Form form1 = new Form();
    2. Bitmap bmp = imageList1.Images[index] as Bitmap;
    3. form1.Icon = Icon.FromHandle(bmp.GetHicon());

    >>>Làm thế nào để chỉnh sửa thông tin về công ty làm chương trình nhỉ ?
    Visual C# Code:
    1. // Vào file : AssemblyInfo.cs
    2. [assembly: AssemblyCompany( "Pete đại ca Corporation :D" )]

    >>>Làm thế nào để hiện ra một hộp thoại status trong một thread nền trong khi đang thực hiện việc khác và cho phép người dùng stop nó nhỉ ?
    Visual C# Code:
    1. private void button1_Click(object sender, System.EventArgs e)
    2. {
    3. BackgroundThreadStatusDialog statusDialog = new BackgroundThreadStatusDialog();
    4. {
    5. for (int n = 0; n < 1000; n++)
    6. {
    7. statusDialog.Percent = n/10;
    8. int ticks = System.Environment.TickCount;
    9. while (System.Environment.TickCount - ticks < 10)
    10. ;
    11. if (statusDialog.IsCanceled)
    12. }
    13. statusDialog.Close();
    14. MessageBox.Show(statusDialog.IsCanceled ? "Canceled" : "Success");
    15. }
    16. {
    17. statusDialog.Close();
    18. }
    19. }

    >>>Làm thế nào biết được người dùng click vào một một form khác từ một model dialog ?
    Visual C# Code:
    1. /* Dùng Form.Deactivate */
    2. Deactivate += new EventHandle( OnDeactivate );
    3. // ...
    4.  
    5. private void OnDeactivate( object s, EventArgs e )
    6. {
    7.   Close();
    8. }

    >>>Làm thế nào load một control từ một assembly hay DLL ?
    Visual C# Code:
    1. using System.Reflection // caí này để load control
    2. // ví dụ lấy SpecControls.ColorControl từ SpecControls.dll.
    3. using System.Reflection;
    4.  
    5. Assembly assembly = Assembly.LoadFrom( "SpecControls.dll" );
    6. Type t = assembly.GetType( "SpecControls.ColorControl" );
    7.  
    8. // tạo instance rồi add nó vào parent control
    9. Control c = (Control) Activator.CreateInstance( t );
    10. parent.Controls.Add( c );

    >>>Làm thế nào cấm user thoát khỏi chương trình bằng nút X nhỉ ?
    Visual C# Code:
    1. private void Form1_Closing( object sender, CancelEventArgs e )
    2. {
    3.   if ( NotOkToClose() )
    4.     e.Cancel = true; //don't close
    5. }

    >>>Làm thế nào tạo form không có title bar và resize được ?
    Visual C# Code:
    1. form1.Text = string.Empty;
    2. form1.ControlBox = false;

    >>>Làm thế nào thiết lập độ trong suốt cho form nhẩy ?
    Dùng thuộc tính Opacity
    Visual C# Code:
    1. form1.Opacity = X // với X là kiểu double   0 <= X <= 1 , hoặc 0% <= X <= 100% :D

    >>>Tạo form hình chữ nhật chán quá, tạo hình khác được không?
    Ví dụ cho form có kiểu 1 hình chữ nhật *****g một elipse
    Visual C# Code:
    1. GraphicsPath gp = new GraphicsPath();
    2. gp.AddEllipse( 0, 0, 100, 100 );
    3. gp.AddRectangle( 50, 50, 100, 100);
    4. this.Region = new Region( gp );

    >>>Làm thế nào form có style kiểu WinXP nhỉ?
    Visual C# Code:
    1. {
    2.   Application.EnableVisualStyles();
    3.   // Calling DoEvents after the above method call seems to fix this issue
    4.   Application.DoEvents();
    5.   Application.Run( new Form1() );
    6. }

    >>> Làm thế nào tạo form phủ hết màn hình kể cả taskbar ?
    Visual C# Code:
    1. FormBorderStyle = FormBorderStyle.FixedSingle;
    2. Rectangle formrect = Screen.GetBounds( this );
    3. Location = formrect.Location;
    4. Size = formrect.Size;

    <còn tiếp>
    None!

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Talking <tiếp tục quậy>

    >>>Làm thế nào cho form xuất hiện tại bên dưới góc phải trên taskbar nhỉ?
    Đặt thuộc tính SetPosition của form = Manual
    Visual C# Code:
    1. SetBounds( Screen.GetWorkingArea( this ).Width - Width,
    2.   Screen.GetWorkingArea( this ).Height - Height, Width, Height );

    >>>Cấm user di chuyển form?
    Visual C# Code:
    1. protected override void WndProc( ref Message m )
    2. {
    3.   const int WM_NCLBUTTONDOWN = 161;
    4.   const int WM_SYSCOMMAND = 274;
    5.   const int HTCAPTION = 2;
    6.   const int SC_MOVE = 61456;
    7.  
    8.   if ( (m.Msg == WM_SYSCOMMAND) && (m.WParam.ToInt32() == SC_MOVE) )
    9.     return;
    10.   if ( (m.Msg == WM_NCLBUTTONDOWN) && (m.WParam.ToInt32() == HTCAPTION) )
    11.     return;
    12.  
    13.   base.WndProc( ref m );
    14. }

    >>Làm thế nào di chuyển một form mà không có border?
    Visual C# Code:
    1. private const int WM_NCLBUTTONDOWN = 0xA1;
    2. private const int HTCAPTION = 0x2;
    3.  
    4. [ DllImport( "user32.dll" ) ]
    5. public static extern bool ReleaseCapture();
    6.  
    7. [ DllImport( "user32.dll" ) ]
    8. public static extern int SendMessage( IntPtr hWnd, int Msg, int wParam, int lParam );
    9.  
    10. private void Form1_MouseDown( object sender, MouseEventArgs e )
    11. {
    12.   if ( e.Button == MouseButtons.Left )
    13.   {
    14.     ReleaseCapture();
    15.     SendMessage( Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0 );
    16.   }
    17. }

    >>>Làm thế nào thay đổi cursor của 1 control?
    Visual C# Code:
    1. button1.Cursor = new Cursor( @"C:\winnt\cursors\hnodrop.cur" );

    >>>Làm thế nào để convert một class cursor sang file *.cur nhỉ?
    Visual C# Code:
    1. protected void WriteCursorToFile( Cursor cursor, string fileName )
    2. {
    3.   TypeConverter converter = TypeDescriptor.GetConverter( typeof( Cursor ) );
    4.   byte[] blob = converter.ConvertTo( cursor, typeof( byte[] ) ) as byte[];
    5.   if ( blob == null )
    6.   {
    7.     MessageBox.Show( "Unable to convert Cursor to byte[]" );
    8.     return;
    9.   }
    10.   FileStream fileStream = new FileStream( fileName, FileMode.Create );
    11.   fileStream.Write( blob, 0, blob.Length );
    12.   fileStream.Flush();
    13.   fileStream.Close();
    14. }

    Hix...chẳng tìm ra cái gì nữa để viết thêm ...Khi nào có viết thêm ^^!

    __Bác nào chưa biết form là gì hay không biết form hoạt động và xử lý các control thế nào thì vô đây tham khảo nha : Mại dô
    Đã được chỉnh sửa lần cuối bởi Xcross87 : 30-05-2007 lúc 06:23 PM.
    None!

  3. #3
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    __Một số sách học C# nên đọc :
    Recommend Books Code:
    1. Windows Forms Programming in C#
    2. Chris Sells, 2004, Addison-Wesley. ISBN: 0321116208.
    3. Windows Forms Programming in Visual Basic .NET
    4. Chris Sells and Justin Ghetland, 2004, Addison-Wesley. ISBN: 0321125193.
    5. Programming Microsoft Windows with C#
    6. Charles Petzold, 2001, Microsoft Press. ISBN: 0-7356-1370-2.
    7. Programming Microsoft Windows with Microsoft Visual Basic .NET
    8. Charles Petzold, 2002, Microsoft Press. ISBN: 0-7356-1799-6.
    9. Mastering Visual Studio .NET
    10. Ian Griffiths, Jon Flanders & Chris Sells, 2003, O'Reilly. ISBN: 0-596-00360-9.
    11. C# Design Patterns: A Tutorial
    12. James W. Cooper, 2003, Addison-Wesley. ISBN: 0201844532.
    13. GDI+ Programming: Creating Custom Controls using C#
    14. Eric White, Chris Garrett, 2002, Wrox Press. ISBN: 1861006314
    None!

  4. #4
    Ngày gia nhập
    08 2009
    Nơi ở
    C:\Documents and Settings\ME\My Documents\Visual Studio 2010
    Bài viết
    516

    >>>Làm thế nào cấm user thoát khỏi chương trình bằng nút X nhỉ ?

    Code:
    Visual C# Code:
    1. private void Form1_Closing( object sender, CancelEventArgs e )
    2. {
    3.   if ( NotOkToClose() )
    4.     e.Cancel = true; //don't close
    5. }

    Cái này thì chỉ cần:
    Visual C# Code:
    1. private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    2.         {
    3.             e.Cancel = true;
    4.         }

  5. #5
    Ngày gia nhập
    07 2009
    Bài viết
    7

    cho mình hỏi mấy cái này thì cần add thêm cái j nữa mới đc vậy,mình làm thử nhưng nó bảo phải add thêm j đó
    Thiên hạ mỹ nhân nhiều vô kể
    Thử hỏi tri âm được mấy người

  6. #6
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    Mặc định Một số thao tác quậy trên WinForm C#

    Trích dẫn Nguyên bản được gửi bởi tonsky Xem bài viết
    cho mình hỏi mấy cái này thì cần add thêm cái j nữa mới đc vậy,mình làm thử nhưng nó bảo phải add thêm j đó
    show lỗi lên..chung chung thế này ai biết đc

    Mở một cây trong registry ra để đọc
    Visual C# Code:
    1.     using System;
    2.     using System.Collections.Generic;
    3.     using System.ComponentModel;
    4.     using System.Data;
    5.     using System.Drawing;
    6.     using System.Linq;
    7.     using System.Text;
    8.     using System.Windows.Forms;
    9.     using System.Diagnostics;
    10.     using Microsoft.Win32;
    11.  
    12.     namespace registry
    13.     {
    14.         public partial class Form1 : Form
    15.         {
    16.             public Form1()
    17.             {
    18.                 InitializeComponent();
    19.             }
    20.  
    21.             private void Form1_Load(object sender, EventArgs e)
    22.             {
    23.                 RegistryKey rg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);          
    24.                 string[]s=rg.GetValueNames();          
    25.                 foreach(string ex in s)
    26.                 {
    27.                     adone(ex,rg.GetValue(ex).ToString(),listView1);
    28.                 }
    29.              
    30.             }
    31.             private void adone(String name, String path,ListView l)
    32.             {
    33.                 int n = l.Items.Count;
    34.                 l.Items.Add(n.ToString());
    35.                 l.Items[n].SubItems.Add(name);
    36.                 l.Items[n].SubItems.Add(path);
    37.             }
    38.         }
    39.     }

    Cách lấy dung lượng RAM. đầu tiên phải add reference Microsoft.VisualBasic từ solution explorer
    Visual C# Code:
    1. using Microsoft.VisualBasic;
    Visual C# Code:
    1.      var ram = new PerformanceCounter("Memory", "Available MBytes");
    2.     float cur = ram.NextValue(); // lấy dung lượng RAM free thời điểm hiện tại
    3.     ulong max = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;// lấy dung lượng tổng cộng của các thanh RAM

    lấy code của 1 trang web
    Visual C# Code:
    1.     using System;
    2.     using System.Net;
    3.     using System.Text;
    4.     using System.IO;
    5.  
    6.     namespace Test {
    7.  
    8.        class GetWebPage {
    9.           public static void Main(string[] args) {
    10.              for(int i=0;i<args.Length;i++) {
    11.                 HttpWebRequest httpWebRequest =
    12.                    (HttpWebRequest)WebRequest.Create(args[i]);
    13.  
    14.                 HttpWebResponse httpWebResponse =
    15.                         (HttpWebResponse)httpWebRequest.GetResponse();
    16.  
    17.                 Stream stream = httpWebResponse.GetResponseStream();
    18.  
    19.                 StreamReader streamReader =
    20.                    new StreamReader(stream, Encoding.ASCII);
    21.                 Console.WriteLine(streamReader.ReadToEnd());
    22.              }
    23.  
    24.              Console.Read();
    25.           }
    26.        }
    27.  
    28.     }

    Cách lấy phần trăm CPU usage. đầu tiên phải add reference Microsoft.VisualBasic từ solution explorer sau đó
    Visual C# Code:
    1. using Microsoft.VisualBasic;
    Visual C# Code:
    1.  
    2. PerformanceCounter cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total");
    3. private void timer1_Tick(object sender, EventArgs e)
    4. {
    5. float cpuUsage=cpu.NextValue();//trả về giá trị float là % cpu đang sử dụng
    6. this.label1.Text="CPU using : "+cpuUsage+" % ";
    7. }

    chú ý : các tham số trong PerformanceCounter là "Processor", "% Processor Time", "_Total" phải đc viết chính xác như thế này....chỉ cần 1 chữ ko viết đúng là ko làm việc đc, vì nó là categories name mặc định, bạn cần phải nhớ...nó cũng ko có trong contextmenu đâu mà chọn :ym_happy:
    .................
    còn nhiều vô kể , toàn hàng hiếm , chả có sách vở nào viết đâu, đang vội...hôm khác sẽ show tiếp

  7. #7
    Ngày gia nhập
    11 2007
    Bài viết
    18

    hay.Tks bạn nhìu

  8. #8
    Ngày gia nhập
    07 2009
    Bài viết
    7

    Trích dẫn Nguyên bản được gửi bởi iamonlining Xem bài viết
    Cái này thì chỉ cần:
    Visual C# Code:
    1. private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    2.         {
    3.             e.Cancel = true;
    4.         }
    cái này ko cho thoát khi kick nút x nhưng mình có 1 chức năng thoát bằng menu nó cũng khóa lun,vậy có cách nào chỉ khóa nút x thôi ko
    Thiên hạ mỹ nhân nhiều vô kể
    Thử hỏi tri âm được mấy người

  9. #9
    Ngày gia nhập
    07 2009
    Bài viết
    7

    có sách nào hướng dẫn winform bằng tiếng việt thì giới thiệu giúp em với ạ,thank nhìu nhìu
    Thiên hạ mỹ nhân nhiều vô kể
    Thử hỏi tri âm được mấy người

  10. #10
    Ngày gia nhập
    04 2009
    Nơi ở
    Gầm cầu
    Bài viết
    2,230

    đóng mở ổ CD ROM
    sử dụng API
    C# code
    PHP Code:
    [DllImport("winmm.dll"EntryPoint="mciSendString")]
            static 
    extern long ControlCDRom(string lpstrCommandstring lpstrReturnStringlong uReturnLengthlong hwndCallback);

            
    long Error;//' Used to store our error message
            
    bool IsOpen// Used to indicate the status of cd

            
    private void btnopen_Click(object senderSystem.EventArgs e)
           {
                  
    Error ControlCDRom("set cdaudio door open"null00);
                  
    IsOpen true;
           }

           private 
    void btnclose_Click(object senderSystem.EventArgs e)
          {
                 if(
    IsOpen == false)
                 return;

                
    Error ControlCDRom("set cdaudio door closed"null00);
         } 
    VB.net code
    PHP Code:
    <DllImport("winmm.dll"EntryPoint := "mciSendString")> _
    Private Shared Function ControlCDRom(ByVal lpstrCommand As StringByVal lpstrReturnString As StringByVal uReturnLength As LongByVal hwndCallback As Long) As Long
    End 
    Function

    Private [
    Error] As Long
    '' Used to store our error message
    Private IsOpen As Boolean
    ' Used to indicate the status of cd
    Private Sub btnopen_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        [Error] = ControlCDRom("set cdaudio door open", Nothing, 0, 0)
        IsOpen = True
    End Sub

    Private Sub btnclose_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If IsOpen = False Then
            Exit Sub
        End If
        
        [Error] = ControlCDRom("set cdaudio door closed", Nothing, 0, 0)
    End Sub 
    Đã được chỉnh sửa lần cuối bởi zstar : 28-10-2009 lúc 12:37 AM.

Các đề tài tương tự

  1. Graphic Vẽ ma trận trên winform như thế nào.
    Gửi bởi sonhaxatacmoi trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 05-09-2013, 08:56 AM
  2. undo/redo khi thao tác với CSDL trên Winform C# làm thế nào?
    Gửi bởi cchangkhongayngo trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 08-11-2012, 11:04 PM
  3. Đóng 1 Tab trên WinForm như thế nào???
    Gửi bởi nth4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 23-10-2012, 11:20 PM
  4. Làm thế nào để nhúng bộ soạn thảo trên winform ?
    Gửi bởi ohoh123 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 06-09-2011, 11:14 AM
  5. Cho hỏi 1 số thao tác trên winform
    Gửi bởi ngclam trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 02-10-2008, 01:17 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn