executing vbscript functions from a C# winform app

K

Kasper

Hi Group.

I have an old VB6 application which loads a number of gui controls
from an inifile and for each control the inifile states the name of
the vbscript that should be executed once the control is clicked or
otherwise triggered.
My question is whether it is possible to execute the vb scripts from
C#? There are multiple scripts in the same file.

If that is not possible I sure would like a hint about how I create a
winforms app where the eventhandler is defined at runtime, not
compiletime.

TIA

Kasper
 
M

Marc Gravell

Well, the simplest way is to store something useful in the tag, and
simply have a shared handler, i.e.

private void foo_Clicked(object sender, EventArgs args) {
Control cont = sender as Control;
if(cont!= null) {
// do something with cont.Tag
}
}

Then when looping:

foreach(whatever) {
SomeControl foo = new SomeControl();
// init
foo.Tag = {something useful}; // could also use Name I suppose
foo.Clicked += foo_Clicked;
}

Depending on needs, you can do things a lot more sophisticated.

Marc
 
C

Cor Ligthert[MVP]

Kasper,

Would it not better to make this really good. As this is your design, then
in my opinion is using C# withouth sense. I would find then VB6 (If I knew
that program languqage good) probably a better option.

However, it would be in VB6 then probably as unsafe as it would be in C#.

Cor
 
N

Nicholas Paldino [.NET/C# MVP]

Kasper,

I think that the best option here is to refactor the VB6 app so that the
UI is contained in hostable ActiveX controls and then host those controls in
your C# app, and let the VB6 code that is being interoped with handle the
script (as you were before).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top