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

Đề tài: [C#] Những thắc mắc cơ bản.

  1. #1
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Wink [C#] Những thắc mắc cơ bản.

    Thắc mắc 1:
    ? Nhập một số nguyên vào từ bàn phím.
    Visual C# Code:
    1. int Key= Console.Read();// một kiểu int
    2.  Console.WriteLine("{0}",Key);//Không theo ý muốn
    Tìm trong MSDN mà chưa có ra
    Bạn nào có thắc mắc tương tự thì vui lòng ghi rõ ràng
    Thắc mắc...
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Thử cái với mấy đoạn code sau, xong đó lên hỏi tiếp nhé:

    Code:
            char ch = 'A';
            Console.WriteLine("Ma ASCII cua {0} la {1}",ch,(byte)(ch));
    Code:
            string str = "congdongcviet";
            Console.WriteLine("Ky tu cua chuoi: {0,0},{1,0}",str[0],str[1]);
            Console.WriteLine("Ky tu cua chuoi: {0,1},{0,2}", str[0], str[1]);
            Console.WriteLine("Ky tu cua chuoi: {1,1},{1,2}", str[0], str[1]);
    Bạn cứ nghiên cứu mấy cái đó, có thể sẽ hình dung ra đó.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Trích dẫn Nguyên bản được gửi bởi Dreaminess Xem bài viết
    Thử cái với mấy đoạn code sau, xong đó lên hỏi tiếp nhé:

    Code:
    ...
    Bạn cứ nghiên cứu mấy cái đó, có thể sẽ hình dung ra đó.
    Oài, ý của Dr là sao nhỉ.
    Chả lẽ ý Dr là chuyển String sang Number à? (Cách này thì có nghĩ tới rồi).
    Tuy nhiên muốn biết cái cách nhập trực tiếp cơ.
    ex:
    int Key;
    cin>>Key;
    //Ok
    Có cao kiến gì Dr chỉ luôn giúp với chứ không có muốn mất thời gian tìm kiếm nữa đâu.(Tiện thể Dr show giùm Console.Read(); luôn với nhé )
    Cảm ơn Admin
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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


    C#

    public static int Read ()

    Return Value
    The next character from the input stream, or negative one (-1) if there are currently no more characters to be read.
    C#

    public static string ReadLine ()
    Return Value
    The next line of characters from the input stream, or a null reference (Nothing in Visual Basic) if no more lines are available.
    Lấy số nguyên nhập từ phím
    PHP Code:
    int KeyConsole.ReadLine();// một kiểu int
     
    Console.WriteLine("{0}",Key);//Không theo ý muốn 
    None!

  5. #5
    Ngày gia nhập
    12 2007
    Bài viết
    28

    Em xin trả lời thắc mắc 1 thế này:
    Vì trong C# hàm Read(), Readline() không hỗ trợ đọc số, cho nên ta phải đọc vào kiểu chuỗi rồi đổi sang số.
    ví dụ:
    Code:
    string str = Console.ReadLine();
    int number = Int32.Parse(str);
    Hay viết gọn là:
    Code:
    int number = Int32.Parse(Console.ReadLine());
    // phần về hàm Read(), ReadLine() anh Xcross87 đã nói rõ.

  6. #6
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    Mặc định [C#] Những thắc mắc cơ bản.

    [...]
    Mọi người cho mình hỏi chút về lập trình Form:
    1.ex: Trong flash thì sư kiện
    onClipEvent(enterFrame)
    {
    //Quản lý tất cả các sự kiện
    }
    Tương đương với
    while(1)
    {
    //Quản lý tất cả các sự kiện ( coi như vậy )
    }
    Vậy thì khi tạo một Form, thì nơi nào là nơi điều khiển chính của nó.
    Và hiểu như thế nào về MyForm_Load(object sender, EventArgs e);
    Nó so sánh thế nào với constructor ?
    2.
    Mình hiểu như sau:
    Tại Form mình tạo , rồi kéo thả các sự kiện ( ex :timer, button...)
    -> Vòng lặp chính là nơi gom các sự kiện.
    Nếu một sự kiện được tác động thì thực thi cái mình yêu cầu đặt ra cho nó.
    Vậy làm thế nào để từ sự kiện này tác động đến sự kiện khác?
    Cụ thể thế này cho dễ:
    Giả sử 1 phút ( dùng duy nhất một timer ) thì nó hiện ra label1 là "^^";
    50 s thì nó hiện ra label1 là "^0^";
    Mình vừa tạo một form nghiên cứu code của nó, thấy thắc mắc chút.Mọi người chỉ jum`.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

  7. #7
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    OK, cái trên mình có thể tự hiểu được rồi. Nhưng vấn đề đặt ra là:
    1.Với timer thì default là 100.
    Vậy , nếu như chương trình mình kiểm tra mang tính liên tục thì có cần đưa nó về 1 không?
    Câu hỏi tiếp theo:
    [thắc mắc 3]
    Mọi người check hộ đoạn code này với nhé:
    Visual C# Code:
    1. namespace TagPropertyExample
    2. {
    3.     public partial class Form1 : Form
    4.     {
    5.         public Form1()
    6.         {
    7.             InitializeComponent();
    8.             FormBorderStyle = FormBorderStyle.FixedSingle;
    9.         }
    10.  
    11.         private void Form1_Load(object sender, EventArgs e)
    12.         {
    13.             // Lấy tất cả các file trong thư mục gốc ổ đĩa C.
    14.             DirectoryInfo directory = new DirectoryInfo("c:\\");
    15.             FileInfo[] files = directory.GetFiles();
    16.             // Hiển thị tất cả các file trong ListView.
    17.             foreach (FileInfo file in files)
    18.             {
    19.                 ListViewItem item = listView1.Items.Add(file.Name);
    20.                 item.ImageIndex = 0;
    21.                 item.Tag = file;
    22.             }          
    23.         }
    24.  
    25.         private void listView1_SelectedIndexChanged(object sender, EventArgs e)
    26.         {
    27.             ListViewItem item = ((ListView)sender).SelectedItems[0];
    28.             FileInfo file = (FileInfo)item.Tag;
    29.             string info = file.FullName + " is " + file.Length + " bytes.";
    30.             MessageBox.Show(info, "File Information");
    31.         }
    32.     }
    [?] Tại sao khi lần đầu tiên click vào một item thì ->MB. Nhưng nếu lần 2 thì bị bug ? Mình đọc nhưng vẫn chưa hiểu lắm.
    Và làm thế nào để trong listView hiện icon của các file nó hiển thị?
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    1 - Code form của C# không chỉ có mỗi file .cs như của bạn.Bạn để đoạn mã thế này người muốn giúp bạn test sẽ mệt ^^! Cách tốt hơn là bạn đưa cái lỗi mà bạn gặp phải lên đây và mô tả quá trình làm phát sinh ra cái lỗi đó. Bạn mới làm tốt phần sau ^^!

    2 - Về lỗi mà bạn gặp phải,theo đúng những gì trên code của bạn thì nguyên nhân lỗi nhiều khả năng nhất nằm ở dòng này
    Visual C# Code:
    1. FileInfo file = (FileInfo)item.Tag;
    Nếu Dark không nhầm thì lỗi bạn gặp phải là đối tượng đã được khởi tạo/open.
    Sửa lỗi này thì bạn bấm F1 có lẽ nhanh hơn ^^! Hiện tại Dark ko có cài VS nên ko đưa ra chỉ dẫn cụ thể hơn cho bạn được,sry ^^!

    3 - Vấn đề listbox và icon đã có rất nhiều,bạn chịu khó google sẽ tìm thấy hướng dẫn cụ thể hơn(thường có cả source code cho bạn tham khảo luôn).

    4 - Vấn đề về cái timer bạn có thể nói rõ hơn bạn muốn làm gì được không? Dark ko có hiểu bạn đang định nói gì ^^!

    Cheers!
    Is the moon rising...

  9. #9
    Ngày gia nhập
    07 2007
    Nơi ở
    Sơn La
    Bài viết
    133

    1 - Code form của C# không chỉ có mỗi file .cs như của bạn.Bạn để đoạn mã thế này người muốn giúp bạn test sẽ mệt ^^! Cách tốt hơn là bạn đưa cái lỗi mà bạn gặp phải lên đây và mô tả quá trình làm phát sinh ra cái lỗi đó. Bạn mới làm tốt phần sau ^^!
    Ok, đồng ý ( tuy nhiên nó cũng không khó hiểu lắm ^^)
    ------------
    2 - Về lỗi mà bạn gặp phải,theo đúng những gì trên code của bạn thì nguyên nhân lỗi nhiều khả năng nhất nằm ở dòng này
    CSharp Code: | Lựa chọn code | Ẩn/Hiện code |
    FileInfo file = (FileInfo)item.Tag;
    Nếu Dark không nhầm thì lỗi bạn gặp phải là đối tượng đã được khởi tạo/open.
    Sửa lỗi này thì bạn bấm F1 có lẽ nhanh hơn ^^! Hiện tại Dark ko có cài VS nên ko đưa ra chỉ dẫn cụ thể hơn cho bạn được,sry ^^!
    Lỗi không phải ở dòng đó đâu Bóng Không Sáng à.
    Cái đó chuyển kiểu đúng rùi.
    Bug ở chỗ
    Code:
    ListViewItem item = ((ListView)sender).SelectedItems[0];
    Mình có dùng MSDN mà vẫn chưa hiểu ra. ^^
    Nhưng nếu thay lại đoạn code:
    Code:
    private void listView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                ListViewItem item = ((ListView)sender).SelectedItems[0];
                FileInfo file = (FileInfo)item.Tag;
                string info = file.FullName + " is " + file.Length + " bytes.";
                MessageBox.Show(info, "File Information");
            }
    Thành đoạn code sau:
    Code:
    for (int index = 0; index < listView.Items.Count; index++)
                {
                    if (listView.Items[index].Selected == true)
                    {
                        //ListViewItem item = ((ListView)sender).SelectedItems[0];
                        FileInfo file = (FileInfo)listView.Items[index].Tag;
                        string info = file.FullName + " is " + file.Length + " bytes.";
                        // Hiển thị kích thước file.
                        MessageBox.Show(info, "File Information");
                    }
                }
    ->good . ^^
    ------------------
    3 - Vấn đề listbox và icon đã có rất nhiều,bạn chịu khó google sẽ tìm thấy hướng dẫn cụ thể hơn(thường có cả source code cho bạn tham khảo luôn).
    Google mà chưa có ra à. Nếu "Bóng Không Sáng" rảnh thì chỉ giùm với nhé.
    Thanks.
    ------------------
    4 - Vấn đề về cái timer bạn có thể nói rõ hơn bạn muốn làm gì được không? Dark ko có hiểu bạn đang định nói gì ^^!
    Cụ thể hơn một chút về suy nghĩ của mình nhé,đơn giản là về hiển thị đồng hồ đi cho dễ nói:
    Bình thường default của timer là 100 ( 1s ).
    -> chỉ cần viết trong timer cho nó hiển thị giờ hệ thống là ok
    Đặt ra là chưa tới 1/2s chúng ta cần làm việc khác(việc W) , như vậy nên thay đổi lại timer về 1 không? hay chỉ cần lấy giá trị mà 1/2s khi thực hiện công việc W.
    Khi đó ta lại phải sử lý lại thời gian hiện thị giờ hệ thống.
    Tức là:
    Nếu có nhiều hơn 1 sự kiện về thời gian, thì ta đều phải chỉnh lại điều kiện của timer.
    Như vậy thì chúng ta nên đưa về default của timer như thế nào
    (Nếu là mình , mình sẽ đưa về cái thấp nhất như thời gian cần để thực hiện công việc W)
    Vui lòng chỉ giúp.
    Trao đổi kiến thức sẽ giúp ta tiếp cận nhanh với kiến thức.

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

    1 - Vấn đề về cái listview của bạn mà ở dòng đó có lẽ là lỗi IndexOutOfArray ^^!
    Bạn thay dòng này vào event SelectedIndexChanged sẽ thấy tại sao bị lỗi đó ^^!
    Code:
    MessageBox.Show((ListView)sender.SelectedItems.count.ToString())
    - Nguyên nhân : Khi select 1 item thì item cũ sẽ bị release.Khi đó event này vẫn được fire,khi đó thì trong listview không còn item nào,dĩ nhiên sẽ có lỗi IndexOutOfArray ^^!

    2 - Bạn có thể xem bài viết sau đây!

    3 - Vấn đề timer :
    Không hiểu bạn băn khoăn vấn đề gì?Bạn cần thời gian chính xác đến đâu thì dùng interval của timer chính xác đến mức đó!

    Cheers!
    P/S :Bạn nghĩ ra cái nickname cho Dark dài mà xấu quá ^^!
    Is the moon rising...

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