c# how - جعل TextBox غير قابل للتحرير




to make (6)

أرغب في جعل بعض TextBox في نموذجي غير قابلة للتحرير ، ولكن أريد أن يكون text واضحًا (الأسود ليس رماديًا) ولهذا السبب لا أريد استخدام

myTextBox.Enabled = false;

بطريقة ما أريد أن يتم تعطيله ولكن مع لون غير رمادي.

هل لديها أي فكرة؟


Answers

استخدم TextBox.ReadOnly على TextBox.

myTextBox.ReadOnly = true;

ولكن تذكر: TextBox.ReadOnly

عندما يتم تعيين هذه الخاصية إلى true ، لا يمكن للمستخدم تغيير محتويات عنصر التحكم في وقت التشغيل . مع تعيين هذه الخاصية إلى "صحيح" ، ما زال بإمكانك تعيين قيمة الخاصية Text في التعليمات البرمجية . يمكنك استخدام هذه الميزة بدلاً من تعطيل عنصر التحكم مع الخاصية Enabled للسماح بنسخ المحتويات وعرض ToolTips.


إذا كنت تريد غير قابل للتحرير TextBox الخاص بك يجب عليك جعله TextBox.ReadOnly .


باستخدام خاصية TextBox.ReadOnly

TextBox.ReadOnly = true;

لخلفية غير رمادي يمكنك تغيير خاصية TextBox.BackColor إلى لون SystemColors.Window

textBox.BackColor = System.Drawing.SystemColors.Window;

عندما يتم تعيين هذه الخاصية إلى true ، لا يمكن للمستخدم تغيير محتويات عنصر التحكم في وقت التشغيل. مع تعيين هذه الخاصية إلى "صحيح" ، ما زال بإمكانك تعيين قيمة الخاصية Text في التعليمات البرمجية. يمكنك استخدام هذه الميزة بدلاً من تعطيل عنصر التحكم مع الخاصية Enabled للسماح بنسخ المحتويات وعرض ToolTips.


تم التعيين في XAML:

        <TextBox IsReadOnly="True" Style="{x:Null}" />

لذلك لن يكون هذا النص باللون الرمادي.


إذا كنت ترغب في القيام بذلك باستخدام XAML ، يتم تعيين الخاصية isReadOnly إلى true .


سيناريوهات يمكنني استخدام IDisposable: تنظيف الموارد غير المدارة ، إلغاء الاشتراك للأحداث ، اتصالات قريبة

المصطلح الذي أستخدمه لتطبيق IDisposable ( وليس threadafe ):

class MyClass : IDisposable {
    // ...

    #region IDisposable Members and Helpers
    private bool disposed = false;

    public void Dispose() {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    private void Dispose(bool disposing) {
        if (!this.disposed) {
            if (disposing) {
                // cleanup code goes here
            }
            disposed = true;
        }
    }

    ~MyClass() {
        Dispose(false);
    }
    #endregion
}






c# .net winforms textbox