كيف يمكنني توصيل إشارات Glade باستخدام GTKBuilder في C #؟

StackOverflow https://stackoverflow.com/questions/1693454

سؤال

في بيثون، يمكن أن أفعل فقط builder.connect_signals(self). وبعد لا يبدو أن هذه الطريقة موجودة في C #، وبعد النظر في وثائق gtkbuilder., يبدو أن بيثون هو الاستثناء، بدلا من القاعدة. كيف يمكنني تحقيق نفس الشيء في C #؟

هل كانت مفيدة؟

المحلول

الآن لم يتم تنفيذ GTK.Builder بالكامل في الإصدار الحالي من GTK # (2.12). هذه مسلك يفسر الوضع الحالي. لذلك بمجرد إصدار GTK # 2.14، يمكنك فقط القيام:

builder.Autoconnect (this);

في هذه الأثناء يمكنك استخدامها glade.xml., ثم قم بتحويل التعليمات البرمجية (وملفات Glade) كما هو موضح هنا: http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html.

نصائح أخرى

يمكنك توصيل الإشارات الخاصة بك باستخدام الطريقة Autoconnect, ، ولكن الطريقة التي تمثل إشارة في C # يجب أن تكون في النموذج:

static void customMethod(object sender, EventArgs args);

لذلك يجب الإعلان عن كل حقل من الفصل الذي تستخدمه بهذه الطريقة static. وبعد إنه يسرقك من إنشاء مثيل آخر من صفك.

هناك طريقة أخرى لربط الإشارات:

Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
    Application.Quit();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top