Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Convert một string thành một control trong C#?

  1. #1
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Mặc định Convert một string thành một control trong C#?

    Chào các bạn,
    Hiện tại mình có một chuỗi x = "abc", trong đó "abc" cũng là Name của một Button sẵn có trong Form. Ban đầu Text của Button này là "nnn". Giờ mình muốn đặt Text cho Button này là "ccc". Vậy mình thay vì dùng abc.Text="ccc" thì mình muốn dùng x.Text="ccc". Nhưng x lúc này đang là một string, mặc dù nó cũng là abc, nhưng nó lại không phải là một control (button), nên biểu thức này bị bắt lỗi. Mình đã ép kiểu của x về control nhưng cũng không được. Mong các bạn chỉ giúp mình. Mình cảm ơn.
    A good beginning and a good ending !

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    414

    Không thể convert string ra control được
    Lí do gì mà bạn không muốn dùng abc.Text

  3. #3
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Không thể convert string ra control được
    Lí do gì mà bạn không muốn dùng abc.Text
    Mục đích của mình muốn điều khiển control theo Name của control đó. Nếu bạn nói không làm được thì mục đích của mình coi như không khả thi. Cảm ơn bạn và mong giải pháp nào đó của ai đó. Mình nghĩ là vẫn có cách.
    A good beginning and a good ending !

  4. #4
    Ngày gia nhập
    11 2013
    Bài viết
    510

    Quét hết lũ control trên Form. Cái nào có tên "abc" thì set text cho nó.

  5. #5
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    414

    Visual C# Code:
    1. String x="abc";
    2. Button mybutton= new Button();
    3. mybutton.Text=" mybutton";
    4. mybutton.Name=x;
    5. Controls[x].Text="ccc";

  6. #6
    Ngày gia nhập
    08 2017
    Bài viết
    2,495

    Mặc định Convert một string thành một control trong C#?

    Trong c#, tên biến (định danh) là duy nhất, nhưng thuộc tính của biến (Name) thì không bắt buộc


  7. #7
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    414

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    Visual C# Code:
    1. String x="abc";
    2. Button mybutton= new Button();
    3. mybutton.Text=" mybutton";
    4. mybutton.Name=x;
    5. Controls[x].Text="ccc";
    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Trong c#, tên biến (định danh) là duy nhất, nhưng thuộc tính của biến (Name) thì không bắt buộc

    Bên trên mình thiếu dòng "Controls.Add(mybutton);" trước khi gọi Controls[x]

  8. #8
    Ngày gia nhập
    07 2011
    Nơi ở
    Moscow-Russia
    Bài viết
    140

    Bài toán của mình thực chất là thế này:
    Trên Form, mình có một loạt các Button, Label, GroupBox,.... Mỗi một Control đều có một Name đã được set khi Design time. Giờ khi viết code, mình có một biến string x nào đó. Mình muốn khi gọi x.Text="ccc" thì Name của control nào trên Form mà trùng với x thì Text của control đó sẽ được gán là "ccc".

    Các bạn trình bày ở trên mình thấy dường như là tạo ra các control đó trong RUN TIME và gán Name cho nó, điều này không phải ý của mình. Các bạn nghiên cứu lại giúp mình. Cảm ơn các bạn nhiều.
    A good beginning and a good ending !

  9. #9
    Ngày gia nhập
    08 2017
    Bài viết
    2,495

    1 - Inheritance
    Object -> MarshalByRefObject -> Component -> Control -> Button (, Label, ...)
    Object -> String
    string không có Text ( x.Text="ccc"; )

    2 - btn.Name không phải là khóa (primary key), c# không cấm đặt tên (Name) cho chúng khác nhau (candidate key)

    3 - các ứng dụng đa ngữ (multi-language) là điển hình để thay đổi giao diện, hiện thị ngôn ngữ người dùng, nó có cách thay đổi, ví dụ từ chữ tượng hình (chinese)

    sang ANSI (English)

  10. #10
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    414

    Trích dẫn Nguyên bản được gửi bởi Moscow Xem bài viết
    Bài toán của mình thực chất là thế này:
    Trên Form, mình có một loạt các Button, Label, GroupBox,.... Mỗi một Control đều có một Name đã được set khi Design time. Giờ khi viết code, mình có một biến string x nào đó. Mình muốn khi gọi x.Text="ccc" thì Name của control nào trên Form mà trùng với x thì Text của control đó sẽ được gán là "ccc".

    Các bạn trình bày ở trên mình thấy dường như là tạo ra các control đó trong RUN TIME và gán Name cho nó, điều này không phải ý của mình. Các bạn nghiên cứu lại giúp mình. Cảm ơn các bạn nhiều.
    Bạn thử lệnh
    Visual C# Code:
    1. Controls["tencuacontrol"].Text="ccc";
    chưa?

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